LEFT JOIN
和LEFT OUTER JOIN
有什么区别?
最佳答案
根据文档:FROM (Transact-SQL):
<join_type> ::=
[ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
JOIN
关键字
OUTER
标记为可选(括在方括号中)。在这种特定情况下,是否指定OUTER
都没有区别。请注意,尽管join子句的其他元素也被标记为可选元素,但将其保留会有所不同。例如,
JOIN
子句的整个type-part是可选的,在这种情况下,如果您仅指定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 left join vs multiple tables on FROM line?上留下的答案。
关于sql-server - SQL Server中的左联接与左外部联接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/406294/