sql - 自定义查询以获取不在其他表中的数据
问题描述
我有两张桌子订单和与会者。两个表都有一个字段email。
我正在尝试编写一个查询,让我返回未包含在表格顺序中的与会者中的所有电子邮件。
用正常的话来说,我的查询会说:“选择所有未包含在订单电子邮件中的与会者的电子邮件。”
我尝试了以下查询,但它没有按我预期的方式工作。
SELECT A.email
FROM attendee A
INNER JOIN order B ON A.order_id = B.id
WHERE A.email NOT B.email
解决方案
选择未包含在订单电子邮件中的与会者的所有电子邮件
这解决了NOT EXISTS
:
select a.email
from attendees a
where not exists (
select 1 from orders
where email = a.email
)
或LEFT JOIN
在email
列上有一个:
select a.email
from attendees a left join orders o
on a.email = o.email
where o.email is null
推荐阅读
- angular - “ApplicationRegisterComponent”类型上不存在 Angular 8 属性“localStorage”
- linux - 如何从 CMake 工具链文件中设置 LD_LIBRARY_PATH?
- javascript - 切换帐户时自动注销不起作用,问题出在ajax调用中
- php - 对现有资源的自定义操作
- vmware - 创建和部署可配置虚拟机的最佳方法
- java - 动画运行后如何放置文本?
- javascript - 学习react-native是不是一定要知道reactjs?
- android - android 中的 XML 文件显示奇怪的符号,如 �(查看详细信息)
- node.js - 使用 node.js 创建 REST API 的最佳实践
- apache-camel - Camel - 基于 HTTP 请求内容的重定向