我有一个简单的查询
select *
from employees as e
left join email_notification as en
on e.id=en.eid and en.`status` != 'SUCCESS';
现在我在email_notification表中有一条记录 状态成功但仍然从employee表获取该记录。
答案 0 :(得分:3)
为什么不尝试使用IN
?
select *
from employees as e
where id not in(
select eid from email_notification
where status != 'SUCCESS'
)
答案 1 :(得分:2)
您希望让员工加入"成功"并选择那些没有的人,如:
SELECT e.*
FROM employees AS e
LEFT email_notification AS en
ON e.id=en.eid and en.`status` = 'SUCCESS'
WHERE en.id IS NULL
;
答案 2 :(得分:1)
我想你的意思是:
select *
from employees as e
left join email_notification as en
on e.id=en.eid
where en.`status` != 'SUCCESS';
我的意思是,status
上的检查不应与join
一起进行,而是参与最终结果。