LEFT JOINLEFT 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/

10-11 02:45
查看更多