mysql - 查询时使用 NOT IN 和 NOT EQUAL
问题描述
我有一个名为“Positions”的表格,我正在尝试从中获取特定信息。举个例子:
Position ID Person
4 Joe
5 Mary
4 Mary
6 Shawn
4 Brad
4 Ken
8 Ken
请注意,一个人可以有多个职位 ID。
我需要提取所有职位 ID 等于 4 的人员的姓名,但他们也不能有除 4 以外的其他职位 ID。
我已经尝试创建一个位置 ID 不是 4 的所有用户的列表,然后说我不希望该列表中的任何用户。逻辑是,这将删除 ID 不为 4 的人员,以及 ID 为 4 但职位 ID 不是 4 的用户。注意,这是在 MySQL 中,我对它比较陌生,但我会想象要遵循的 SQL 逻辑。
SELECT
Person
FROM
Positions
WHERE Person NOT IN
(
SELECT Person
FROM
Positions
WHERE
Position_ID <> 4
)
我希望结果只显示乔和布拉德
无论我做得多么简单,我的结果都没有得到任何回报。
解决方案
首先,您正在对“Persons”进行 SELECT。您有两列名为 Position Id 和 Person。从那个开始
SELECT * FROM Positions WHERE person NOT IN (SELECT person WHERE position_id != 4);
推荐阅读
- r - 通过控制组为几个子组中的每一个划分整个数据帧
- json - 仅在字符串周围添加引号,而不是数字或列表
- spring-boot - 使用 RewritePath 刷新 Spring Cloud Gateway 失败
- android-studio - 在 TabLayout 中的选项卡之间添加空格
- c# - 我想进入类的表单对象类型的构造函数
- node.js - 在 ID 数组中搜索具有相同 ID 的 mongoose 上的多个文档
- ios - 有人知道如何使用 Apple 的视觉框架进行实时文本识别吗?
- c# - 为射击脚本添加冷却时间
- java - 如何在 Spring Boot 的资源文件夹中添加可执行文件
- azure - 是否可以从我的 PC 上租用 Azure 磁盘并通过 iSCSI 连接到它们?