我有一个类似但与我在stackoverflow上看到的其他人不太相同的问题
假设我有以下查询
select *
from BobsFriends bf
left outer join JennysFriends jf on bf.friendID = jf.friendID
bf.friendID = jf.friendID
和jf.friendID = bf.friendID
会返回不同的结果吗?我认为这些会返回相同的结果,但
select *
from JennysFriends bf
left outer join BobsFriends jf on bf.friendID = jf.friendID
将返回不同的。
答案 0 :(得分:3)
比较JOIN时列的顺序无关紧要,但在执行OUTER JOIN
时,表的顺序绝对重要。
对于LEFT OUTER JOIN
,您将始终从第一个表中获取结果,并使用第二个表中的数据(如果可用)。
对于RIGHT OUTER JOIN
,您总是会从 second 表中获取结果,其中包含第一个表中的数据(如果有)。
答案 1 :(得分:0)
Left outer join
从表A("左侧"表)生成一组完整的记录,表B中有匹配的记录(如果可用)("右侧& #34;一)。如果没有匹配,则右侧将包含null。