在SQL中加入ON命令

时间:2015-03-19 18:22:13

标签: sql sql-server tsql

我有一个类似但与我在stackoverflow上看到的其他人不太相同的问题

假设我有以下查询

select * 
from BobsFriends bf 
left outer join JennysFriends jf on bf.friendID = jf.friendID 

bf.friendID = jf.friendIDjf.friendID = bf.friendID会返回不同的结果吗?我认为这些会返回相同的结果,但

select * 
from JennysFriends bf 
left outer join BobsFriends jf on bf.friendID = jf.friendID

将返回不同的。

2 个答案:

答案 0 :(得分:3)

比较JOIN时列的顺序无关紧要,但在执行OUTER JOIN时,表的顺序绝对重要。

对于LEFT OUTER JOIN,您将始终从第一个表中获取结果,并使用第二个表中的数据(如果可用)。

对于RIGHT OUTER JOIN,您总是会从 second 表中获取结果,其中包含第一个表中的数据(如果有)。

答案 1 :(得分:0)

Left outer join从表A("左侧"表)生成一组完整的记录,表B中有匹配的记录(如果可用)("右侧& #34;一)。如果没有匹配,则右侧将包含null。