我想了解的情况以及哪里会影响语句的执行,但没有运气..LEFT JOIN声明与ON和WHERE
我有这样的说法,给了我预期的结果:
SELECT DISTINCT u1.email
FROM user u1
LEFT JOIN user u2
ON u1.email = u2.email
WHERE u1.id != u2.id
转乘ON和WHERE给出了相同的结果这是很好的,但是当我删除了在那里我得到更多的结果是:
SELECT DISTINCT u1.email
FROM user u1
LEFT JOIN user u2
ON u1.email = u2.email
AND u1.id != u2.id
这是为什么?
在结果中添加'u2.email'会让你更清楚地知道你得到的结果:http://sqlfiddle.com/#!2/6a133/52'LEFT JOIN'也返回那些在'ON'子句中有空匹配 –
@MichaelBerkowski谢谢我明白了! :) – user2868631