Zgodnie z dokumentacją:OD (Transact-SQL):
<join_type> ::=
[ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
JOIN
Słowo kluczowe OUTER
jest oznaczony jako opcjonalny (ujęty w nawiasy kwadratowe). W tym konkretnym przypadku, czy określisz OUTER
czy nie, nie ma znaczenia. Zauważ, że chociaż inne elementy klauzuli join są również oznaczone jako opcjonalne, pozostawiając je się będzie zrobić różnicę.
Na przykład cała część typu JOIN
klauzula jest opcjonalna, w takim przypadku wartością domyślną jest INNER
jeśli po prostu określisz JOIN
. Innymi słowy, jest to legalne:
SELECT *
FROM A JOIN B ON A.X = B.Y
Oto lista równoważnych składni:
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
Spójrz także na odpowiedź, którą zostawiłem na to inne pytanie SO:SQL left join a wiele tabel w linii FROM?.