什么是PostgreSQL中的LEFT JOIN

Nei*_*ton 17 sql postgresql

我见过使用a LEFT JOIN而不是INNER或者查询的查询LEFT OUTER.

究竟是LEFT JOIN什么?

pod*_*ska 36

如果inner join只返回两个表中匹配left join的条目,则a 获取第一个表中的所有条目以及第二个表中匹配的任何条目.A right join是反向的left join(即:所有来自第二个表)

所以如果TableA是

A B
1 a
2 b
3 c
Run Code Online (Sandbox Code Playgroud)

和TableB是

A B
1 d
2 e
Run Code Online (Sandbox Code Playgroud)

然后Select * from TableA inner join TableB on TableA.A = TableB.A返回

1 a 1 d
2 b 2 e
Run Code Online (Sandbox Code Playgroud)

Select * from TableA left join TableB on TableA.A = TableB.A返回

1 a 1 d
2 b 2 e
3 c null null  
Run Code Online (Sandbox Code Playgroud)


Gar*_*thD 9

它与LEFT OUTER相同(因为INNER JOIN需要双边匹配所以暗示OUTER是LEFT INNER JOIN没有意义的).这同样适用于RIGHT JOINFULL JOIN这些等同于RIGHT OUTER JOINFULL OUTER JOIN分别