我有兩個表如圖所示here。不同的行爲使用JOIN ON和JOIN ON
我正在嘗試取name
和register
變量當register
變量不存在值存在。
使用下面的查詢我得到的是here。
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)
當我使用下面的查詢,我得到錯誤的結果如圖here。
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)
我的問題是:爲什麼我在上述情況下得到不同的結果。我在ON子句本身中使用WHERE條件,以便我不需要編寫WHERE條件。
有人能指引我正確的方向嗎?
的查詢相同但看看sqlfiddle:p –
查詢看起來與我一樣 – iedoc
@iedoc,他們是。我從小提琴更新了它們。 – Ben