Wat is het verschil tussen LEFT JOIN
en LEFT OUTER JOIN
?
Volgens de documentatie: FROM (Transact-SQL):
<join_type> ::=
[ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
JOIN
Het sleutelwoord OUTER
is gemarkeerd als optioneel (tussen vierkante haken). In dit specifieke geval maakt het geen verschil of u OUTER
specificeert of niet. Merk op dat, hoewel de andere elementen van de join clause ook als optioneel zijn gemarkeerd, het weglaten van hen wel een verschil maakt.
Bijvoorbeeld, het hele type-gedeelte van de JOIN
clausule is optioneel, in welk geval de standaard INNER
is als je alleen JOIN
opgeeft. Met andere woorden, dit is legaal:
SELECT *
FROM A JOIN B ON A.X = B.Y
Hier's een lijst van equivalente syntaxis:
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
Kijk ook eens naar het antwoord dat ik achterliet op deze andere SO vraag: SQL left join vs meerdere tabellen op FROM regel?.
Wat is het verschil tussen left join en left outer join?
Niets. LEFT JOIN
en LEFT OUTER JOIN
zijn gelijkwaardig.