ここに示すように、2 つのテーブルがあります。
フェッチしようとしていますがname
、register
変数 WHENregister
変数に値が存在しません。
以下のクエリを使用すると、ここに表示されます。
SELECT t2.name, t1.register, t1.mydate
FROM time t1
RIGHT JOIN user t2
ON t2.user_id=t1.user_id
WHERE (t1.register = 'absent' OR t1.register is null)
以下のクエリを使用すると、ここに示すように誤った結果が得られます。
SELECT t2.name, t1.register, t1.mydate
FROM time t1
RIGHT JOIN user t2
ON t2.user_id=t1.user_id AND (t1.register = 'absent' OR t1.register is null)
私の質問は、上記のケースで異なる結果が得られる理由です。WHERE 条件を記述する必要がないように、ON 句自体で WHERE 条件を使用しています。
誰かが私を正しい方向に向けることができますか?