LEFT JOIN vs. LEFT OUTER JOIN in SQL Server

Was ist der Unterschied zwischen LEFT JOIN und LEFT OUTER JOIN?

Lösung

Wie in der Dokumentation beschrieben: FROM (Transact-SQL):

 ::= 
    [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [  ] ]
    JOIN

Das Schlüsselwort OUTER ist als optional gekennzeichnet (in eckigen Klammern). In diesem speziellen Fall macht es keinen Unterschied, ob Sie OUTER angeben oder nicht. Beachten Sie, dass die anderen Elemente der Verknüpfungsklausel zwar ebenfalls als optional gekennzeichnet sind, das Weglassen dieser Elemente jedoch einen Unterschied macht.

Zum Beispiel ist der gesamte Typ-Teil der JOIN-Klausel optional, in diesem Fall ist der Standard INNER, wenn Sie nur JOIN angeben. Mit anderen Worten, dies ist legal:

SELECT *
FROM A JOIN B ON A.X = B.Y

Hier ist eine Liste von gleichwertigen Syntaxen:

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

Werfen Sie auch einen Blick auf die Antwort, die ich auf diese andere SO-Frage hinterlassen habe: SQL left join vs. mehrere Tabellen auf FROM-Zeile?.

Kommentare (24)

Was ist der Unterschied zwischen Left Join und Left Outer Join?

Nichts. LINKS JOIN" und "LINKS OUTER JOIN" sind gleichwertig.

Kommentare (8)

Syntaktischer Zucker, der es dem Gelegenheitsleser deutlicher macht, dass es sich nicht um eine innere Verknüpfung handelt.

Kommentare (2)