我看到使用LEFT JOIN
而不是INNER
或LEFT OUTER
的查询。
究竟是什么LEFT JOIN
?
答案 0 :(得分:36)
如果inner join
仅返回两个表中匹配的条目,则left join
将获取第一个表中的所有条目以及第二个表中匹配的任何条目。 right join
与left join
相反(即:来自第二个表的所有内容)
所以如果TableA是
A B
1 a
2 b
3 c
和TableB是
A B
1 d
2 e
然后Select * from TableA inner join TableB on TableA.A = TableB.A
返回
1 a 1 d
2 b 2 e
Select * from TableA left join TableB on TableA.A = TableB.A
返回
1 a 1 d
2 b 2 e
3 c null null
答案 1 :(得分:8)
它与LEFT OUTER相同(因为INNER JOIN需要双边匹配所以暗示OUTER,因此LEFT INNER JOIN
没有意义)。这同样适用于RIGHT JOIN
和FULL JOIN
,它们分别相当于RIGHT OUTER JOIN
和FULL OUTER JOIN