LINKS JOIN vs. LINKS OUTER JOIN in SQL Server

Wat is het verschil tussen LEFT JOIN en LEFT OUTER JOIN?

Oplossing

Volgens de documentatie: FROM (Transact-SQL):

 ::= 
    [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [  ] ]
    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?.

Commentaren (24)

Wat is het verschil tussen left join en left outer join?

Niets. LEFT JOIN en LEFT OUTER JOIN zijn gelijkwaardig.

Commentaren (8)

Syntactische suiker, maakt het voor de toevallige lezer duidelijker dat de join'geen innerlijke is.

Commentaren (2)