Hvad er forskellen mellem LEFT JOIN
og LEFT OUTER JOIN
?
Som det fremgår af dokumentationen: FROM (Transact-SQL):
<join_type> ::=
[ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
JOIN
Nøgleordet OUTER
er markeret som valgfrit (omgivet af firkantede parenteser). I dette specifikke tilfælde gør det ingen forskel, om du angiver OUTER
eller ej. Bemærk, at selv om de andre elementer i join-klausulen også er markeret som valgfrie, vil det gøre en forskel at udelade dem.
F.eks. er hele type-delen af klausulen JOIN
valgfri, og i så fald er standardværdien INNER
, hvis du kun angiver JOIN
. Med andre ord er dette lovligt:
SELECT *
FROM A JOIN B ON A.X = B.Y
Her er en liste over tilsvarende syntakser:
A LEFT JOIN B A LEFT OUTER JOIN B
A RIGHT JOIN B A RIGHT OUTER JOIN B
A FULL JOIN B A FULL OUTER JOIN B
A INNER JOIN B A JOIN B
Tag også et kig på det svar, jeg efterlod på dette andet SO-spørgsmål: SQL left join vs flere tabeller på FROM-linjen?.
Hvad er forskellen mellem left join og left outer join?
Ingen. LEFT JOIN
og LEFT OUTER JOIN
er ækvivalente.