我试图了解 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 给出相同的结果,这很好,但是当我删除 WHERE 时,我得到更多结果:
SELECT DISTINCT u1.email
FROM user u1
LEFT JOIN user u2
ON u1.email = u2.email
AND u1.id != u2.id
这是为什么 ?