Was ist der Unterschied zwischen LEFT JOIN
und LEFT OUTER JOIN
?
Wie in der Dokumentation beschrieben: FROM (Transact-SQL):
<join_type> ::=
[ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
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?.
Was ist der Unterschied zwischen Left Join und Left Outer Join?
Nichts. LINKS JOIN" und "LINKS OUTER JOIN" sind gleichwertig.
Syntaktischer Zucker, der es dem Gelegenheitsleser deutlicher macht, dass es sich nicht um eine innere Verknüpfung handelt.