什么是PostgreSQL中的LEFT JOIN

时间:2012-07-31 11:42:20

标签: sql postgresql

我看到使用LEFT JOIN而不是INNERLEFT OUTER的查询。

究竟是什么LEFT JOIN

2 个答案:

答案 0 :(得分:36)

如果inner join仅返回两个表中匹配的条目,则left join将获取第一个表中的所有条目以及第二个表中匹配的任何条目。 right joinleft 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 JOINFULL JOIN,它们分别相当于RIGHT OUTER JOINFULL OUTER JOIN