首页 > 解决方案 > 自定义查询以获取不在其他表中的数据

问题描述

我有两张桌子订单与会者。两个表都有一个字段email

我正在尝试编写一个查询,让我返回未包含在表格顺序中的与会者中的所有电子邮件。

用正常的话来说,我的查询会说:“选择所有未包含在订单电子邮件中的与会者的电子邮件。”

我尝试了以下查询,但它没有按我预期的方式工作。

SELECT A.email
FROM attendee A
INNER JOIN order B ON A.order_id = B.id 
WHERE A.email NOT B.email

标签: sql

解决方案


选择未包含在订单电子邮件中的与会者的所有电子邮件

这解决了NOT EXISTS

select a.email
from attendees a
where not exists (
  select 1 from orders
  where email = a.email
)

LEFT JOINemail列上有一个:

select a.email
from attendees a left join orders o 
on a.email = o.email 
where o.email is null

推荐阅读