我正在使用Microsoft SQL Server 2012.我有两个表T1和T2,它们都有一个ID
列。
当我在Microsoft SQL Server Management Studio中输入以下SQL语句时
select ID
from T1
natural full outer join T2
它产生了以下错误:
Msg 102,Level 15,State 1,Line 1
'T2'附近的语法不正确。
但是,Microsoft SQL Server Management Studio接受以下语句,我认为该语句是等效语句:
select ID
from T1
full outer join T2 ON t1.ID = T2.ID
SQL Server Management Studio不支持自然全外连接吗?
答案 0 :(得分:1)
SQL Server / Transact SQL根本不支持自然连接语法。
顺便说一句,解析器并没有抱怨“自然”,因为它假设这是一个表别名: - )
答案 1 :(得分:0)
看起来没有对自然联接的支持,但看看论坛Microsoft Connect 和Stack Overflow
答案 2 :(得分:0)
Sql server中没有自然连接,您必须明确告诉sql server您希望表加入哪些字段。
1)使用ON
子句并明确使用两个表中的列名。
2)或者在旧的JOIN语法中明确使用WHERE子句中两个表的列名。
关于这个主题的另一个好答案 Read here