繁体   English   中英

左外联接表排序

[英]Left Outer Join Table Ordering

从我从LEFT OUTER JOIN中学到的所有知识中,您希望可为空的表应该位于equals符号的右侧。 如果是这种情况,为什么两个查询都返回相同的结果:

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

Q1在A.id = B.id上使用A LEFT JOIN B

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”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM