---
title: "JOIN hit och dit...!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/175255-join-hit-och-dit"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "learn"
published: "2008-11-10T11:29:47.000Z"
updated: "2008-11-26T11:04:33.000Z"
replies: 5
views: 551
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/175255-join-hit-och-dit"
---

# JOIN hit och dit...!

## #1 — learn, 2008-11-10T11:29Z

Jag lägger ihop flera tabeller i en och samma query men tycker det borde gå att förbättra.

Följande fungerar som jag vill

```
SELECT k.kontoID, a.namn, u.adress
FROM konto k
LEFT JOIN anvandare a ON a.objektID IN
(
	SELECT objektID FROM objekt_konto ok WHERE ok.kontoID = k.kontoID
)
LEFT JOIN uppgifter u ON u.objektID IN
(
	SELECT objektID FROM objekt_konto ok WHERE ok.kontoID = k.kontoID
)
```

 

Eftersom båda joinarna spelar mot samma villkor så borde det väl gå att slå ihop på något sätt. Eller?

Följande fungerar ju naturligtvis inte

```
SELECT k.kontoID, a.namn, u.adress
FROM konto k
LEFT JOIN anvandare a
LEFT JOIN uppgifter u
ON a.objektID AND u.objektID IN
(
	SELECT objektID FROM objekt_konto ok WHERE ok.kontoID = k.kontoID
)
```

 

Men kanske med någon justering... Hur kan man göra?

Permalänk: https://www.webforum.nu/p/175255

## #2 — learn, 2008-11-10T15:23Z

På något sätt borde det väl gå att effektivisera?? Känns så himla onödigt att behöva köra SAMMA subquery flera flera flera gånger:

```
SELECT k.kontoID, a.namn, u.adress, l.namn, s.namn, g.namn
FROM konto k
LEFT JOIN anvandare a ON a.objektID IN
(
	SELECT objektID FROM objekt_konto ok WHERE ok.kontoID = k.kontoID
)
LEFT JOIN uppgifter u ON u.objektID IN
(
	SELECT objektID FROM objekt_konto ok WHERE ok.kontoID = k.kontoID
)
LEFT JOIN land l ON l.objektID IN
(
	SELECT objektID FROM objekt_konto ok WHERE ok.kontoID = k.kontoID
)
LEFT JOIN stad s ON s.objektID IN
(
	SELECT objektID FROM objekt_konto ok WHERE ok.kontoID = k.kontoID
)
LEFT JOIN gata g ON g.objektID IN
(
	SELECT objektID FROM objekt_konto ok WHERE ok.kontoID = k.kontoID
)
```

*Tabellnamnen är endast exempel.*

Hur kan man göra?? Tacksam för hjälp :)

Permalänk: https://www.webforum.nu/p/2152856

## #3 — Peter S, 2008-11-10T16:26Z

```
SELECT k.kontoID, a.namn, u.adress, l.namn, s.namn, g.namn
FROM konto k
left join objekt_konto ok on k.kontoid = ok.kontoid
left join anvandare a on a.objektid = ok.objektid
LEFT JOIN uppgifter u ON u.objektID = ok.objektid
LEFT JOIN land l ON l.objektID = ok.objektid
LEFT JOIN stad s ON s.objektID = ok.objektid
LEFT JOIN gata g ON g.objektID = ok.objektid
```

Permalänk: https://www.webforum.nu/p/2152865

## #4 — learn, 2008-11-10T17:39Z

Tack för ditt svar Peter S men det där går nog inte. Eftersom objekt_konto innehåller flera objektID per kontoID. I ditt exempel hämtas väl bara ut ett objektID där kontoID har ett visst värde.

Varje "undertabell" (anvandare, uppgifter, land, stad, gata) har ett eget unikt objektID. Alltså behöver jag hämta alla objektID som tillhör kontoID från objekt_konto...

Det är därför jag gör en subquery.

Kanske tänker jag fel, men jag tror jag är på rätt spår.

Kan inte joinarna dela på en subquery på något sätt??

Permalänk: https://www.webforum.nu/p/2152873

## #5 — learn, 2008-11-11T21:38Z

Hallå?

Permalänk: https://www.webforum.nu/p/2153008

## #6 — Brimba, 2008-11-26T11:04Z

Jag är inne på samma spår som peter.
Jag förstår inte riktigt hur din databas ser ut, eller vilket resultat du vill uppnå. I detta fall vore det bra om du kunde posta lite DDL och testdata

Skulle detta fungera?

```
SELECT k.kontoID, a.namn, u.adress, l.namn, s.namn, g.namn
FROM konto k
INNER JOIN objekt_konto ok ON ok.kontoID = k.kontoID
LEFT JOIN anvandare a ON a.objektID = ok.objektId
LEFT JOIN uppgifter u ON u.objektID = ok.objektId
```

På något sätt känns det som att det du vill göra är en inner join mot objekt_konto

Permalänk: https://www.webforum.nu/p/2157407

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/175255-join-hit-och-dit
