我见过使用 aLEFT JOIN而不是INNERor的查询LEFT OUTER。
究竟是LEFT JOIN什么?
如果 ainner join仅返回在两个表中匹配left join的条目,则 a 从第一个表中获取所有条目以及在第二个表中匹配的任何条目。Aright join是 a 的倒数left join(即:全部来自第二个表)
所以如果 TableA 是
A B
1 a
2 b
3 c
和表 B 是
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
它与 LEFT OUTER 相同(隐含 OUTER 是因为 INNER JOIN 需要双边匹配,因此 aLEFT INNER JOIN没有意义)。这同样适用于RIGHT JOIN,它们分别FULL JOIN等同于RIGHT OUTER JOIN和FULL OUTER JOIN