左外连接表排序

时间:2014-06-11 15:21:25

标签: sql postgresql

从我所了解的关于LEFT OUTER JOIN的所有内容中,您想要可以为空的表应位于等号的右侧。如果是这种情况,为什么这两个查询都会返回相同的结果:

SELECT          *
FROM            employees e
LEFT JOIN       cars c ON c.employeeID=e.id AND c.name='Honda City'
WHERE c.id IS NULL
ORDER BY        e.id ASC;

SELECT          *
FROM            employees e
LEFT JOIN       cars c ON e.id=c.employeeID AND c.name='Honda City'
WHERE c.id IS NULL
ORDER BY        e.id ASC;

演示:http://sqlfiddle.com/#!15/46d00/2

1 个答案:

答案 0 :(得分:5)

Q1使用A LEFT JOIN B ON A.id = B.id

Q2使用A LEFT JOIN B ON B.id = A.id

您已在ON子句中更改了要比较的项目的LHS和RHS,但LEFT连接正在讨论左侧的TABLE。

所以要看到差异你会使Q2使用" B LEFT JOIN A ON A.id = B.id"