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
何故ですか ?