webForumDet fria alternativet

problem med flera JOIN

1 svar · 154 visningar · startad av Koggen

KoggenMedlem sedan juni 2002169 inlägg
#1

Jag försöker få ihop tre tabeller i en Accessdatabas till en gemensam lista, men det vill sig inte riktigt.

Här är tabellerna:
Lokaler (77 poster)
koppl (38 poster)
Person (49 poster)

Här kommer min SQL-sats

SELECT Lokaler.RumNr, Lokaler.Typ, Lokaler.Beteckning, Person.ENamn, Person.FNamn
FROM (Lokaler INNER JOIN koppl ON Lokaler.ID = koppl.LokalID) INNER JOIN Person ON koppl.PersID = Person.ID;

Det jag vill åstadkomma är att ALLA posterna i tabellen Lokaler listas oavsett om dom finns representerade i tabellen koppl eller ej.

Som det är nu listas bara dom poster som representeras i koppl också.

Jag har provat med LEFT JOIN också, men det vill sig inte. Eftersom jag inte vet riktigt hur det fungerar med flera JOIN så famlar jag lite i mörker. Hoppas någon kan bistå med lite upplysning i dunklet :)

Engine^Medlem sedan dec. 20003 887 inlägg
#2
SELECT tL.RumNr, tL.Typ, tL.Beteckning, tP.ENamn, tP.FNamn
FROM Lokaler tL
LEFT OUTER JOIN (koppl tK
  INNER JOIN Person tP
    ON tP.ID = tK.PersID)
  ON tK.LokalID = tL.ID

Jag kom på att den lösningen är nog ogiltig, eftersom Access inte tillåter att man nästlar en OUTER JOIN inne i en INNER JOIN, men tvärtom går bra.

Så den här varianten kan fungera hoppas jag

SELECT tL.RumNr, tL.Typ, tL.Beteckning, tP.ENamn, tP.FNamn
FROM koppl tK
INNER JOIN Person tP
  ON tP.ID = tK.PersID
RIGHT OUTER JOIN Lokaler tL
  ON tL.ID = tK.LokalID

Jag är fundersam om resultatet blir det eftersökta här, men det märker du :)

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)