我有两个表如图所示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