我有这个问题:
select t1.l_id, coalesce(t2.o_id,0) from t1 left join t2 using(l_id);
给了我一个结果,第二列中有0
。但是,当我在列上放置where
时,它没有给我任何结果:
select t1.l_id, coalesce(t2.o_id,0) from t1 left join t2 using(l_id)
where t2.o_id = null;
如何选择没有连接记录的记录?
答案 0 :(得分:3)
使用:
WHERE t2.o_id IS NULL;
而不是:
WHERE t2.o_id = NULL;
如果t2.o_id
为NULL
,那么第二个谓词的评估结果为NULL
,并不像人们预期的那样真实。这就是所谓的three-valued logic SQL。