Avatar billede anhansen Nybegynder
25. november 2004 - 10:28 Der er 1 kommentar og
1 løsning

Outer og inner joins?

Hej

Jeg har en query som er bygget ca. op på denne måde.
SELECT * FROM tbl1
INNER JOIN tbl2 on tbl1.kol = tbl2.kol
INNER JOIN tbl3 on tbl2.kol = tbl3.kol
INNER JOIN tbl4 on tbl3.kol = tbl4.kol
INNER JOIN tbl5 on tbl4.kol = tbl5.kol

Det jeg nu gerne vil er at lave et "løst" link, en left outer join på tbl3. Men inde i den skal de to nederste where inner joined med tbl3.
Det vil sige at jeg skal have alle de resultater ud der har poster i tbl1 og tbl2, og så dem som hvis de har en post i tbl3 også har i tbl4 og tlb5.

Kan det ikke lavet ved hjælp af noget parantes e.lign. Kan bare ikke lige gennemskue den?
Avatar billede anhansen Nybegynder
25. november 2004 - 10:33 #1
Så lykkedes det alligevel for mig selv at lave det.. Typisk - lige som man har skrevet indlægget kommer ideen.. :-)

Men her er en løsning.
SELECT * FROM tbl1
INNER JOIN tbl2 on tbl1.kol = tbl2.kol
LEFT JOIN (tbl3
INNER JOIN tbl4 on tbl3.kol = tbl4.kol
INNER JOIN tbl5 on tbl4.kol = tbl5.kol) on tbl2.kol = tbl3.kol

Where klausulerne skal så tilpasses så alt det der er left joined skal være
WHERE tbl1.kol = værdi
AND (tbl4.kol = værdi1 OR tbl4.kol IS NULL)
Avatar billede anhansen Nybegynder
25. november 2004 - 10:34 #2
Altså enten værdien eller null. Ellers vil jeg ikke få alle poster.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester