Jimmy skrev:
> Men er ideen med LEFT JOIN ikke, at den kun tager rækker, når
> der er matches i begge?
Nej, det er et INNER JOIN.
Kort fortalt er jointyperne således:
INNER JOIN => match på begge sider (ingen null-værdier i
joinfelter)
LEFT [OUTER][1] JOIN => alle poster fra venstresiden, højresiden fyldes
ud med null hvis der ikke findes et match
RIGHT [OUTER][1] JOIN => alle poster fra højresiden, venstresiden
fyldes ud med null hvis der ikke findes et match
FULL JOIN [2] => kombination af LEFT og RIGHT JOIN. Der fyldes ud med
nullværdier på begge sider
CROSS JOIN [3] => krydsproduktet af to tabeller. Der er ingen
join-felter, forespørgslen returnerer alle kombinationer af rækker fra
de to tabeller.
Noter:
======
[1] OUTER er - i hvert fald i MSSQL - valgfri (LEFT JOIN = LEFT OUTER
JOIN)
[2] FULL JOIN er muligvis specifik for MSSQL
[3] CROSS JOIN svarer til en SELECT på to tabeller uden joins: "SELECT *
FROM foo, bar" = "SELECT * FROM foo CROSS JOIN bar"
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO -
www.fiduso.dk)
I ovenstående tekst benyttes nyt komma
(rettelser modtages gerne i dk.kultur.sprog)