Согласно документации: ОТ (Transact-SQL) :
<join_type> ::=
[ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
JOIN
Ключевое слово OUTER
помечается как необязательное (заключено в квадратные скобки), и в данном случае это означает, что независимо от того, указываете вы его или нет, не имеет значения. Обратите внимание, что, хотя другие элементы предложения объединения также помечены как необязательные, исключение их , конечно, будет иметь значение.
Например, вся типовая часть предложения JOIN
является необязательной, в этом случае по умолчанию используется значение INNER
, если вы просто задаете JOIN
. Другими словами, это законно:
SELECT *
FROM A JOIN B ON A.X = B.Y
Вот список эквивалентных синтаксисов:
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
Также взгляните на ответ, который я оставил на этот другой вопрос SO: Соединение влево SQL против нескольких таблиц в строке FROM? .