sql - 从列值满足一个条件但不满足另一个条件的多行中选择 ID
问题描述
你好我有以下问题。
我有一个像这个sql fiddle中的那个 表这个表定义了一个关系,它包含来自其他两个表的 ID
示例值
| FirstID | SecondID |
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 1 |
| 2 | 2 |
| 2 | 3 |
| 2 | 4 |
| 2 | 5 |
| 3 | 1 |
| 3 | 2 |
| 3 | 3 |
我想选择所有满足以下条件的 FirstID。 它们对应的 SecondID 在 1-3 范围内,而不在 4-5 范围内
例如,在这种情况下,我们需要 FirstID 1 和 3。
我尝试了以下查询
SELECT FirstID from table
WHERE SecondID IN (1,2,3) AND SecondID NOT IN (4,5)
SELECT FirstID,SecondID
FROM(
SELECT FirstID, SecondID
FROM table
WHERE SecondID in (1,2,3,4,5) )
WHERE SecondID NOT IN (4,5)
但我没有得到我想要的正确结果。
获取我想要的数据的正确查询是什么?
解决方案
SELECT FirstID
FROM table
WHERE SecondId in (1,2,3) --Included values
AND FirstID NOT IN (SELECT FirstID FROM test
WHERE SecondId IN (4,5)) --Excluded values
推荐阅读
- javascript - 在 jQuery 元素过滤器中写入和读取 URL
- r - 根据 R 中的动态列数和列名过滤行
- c# - 如何按子列表对列表列表进行分组
- python - 在特定端口上运行 Python
- c# - EF 核心使用 dbContext.Database.Migrate(); 配置 UseSqlServer() 后自动执行迁移
- python - (Python) 计算日期范围时出错
- docker - 如何在 Travis-CI 中获取 Gitversion docker 以获取 FullSemVer
- python - 错误:(-2:未指定的错误)该功能未实现。使用 Windows、GTK+ 2.x 或 Cocoa 支持重建库
- java - 路线 [categories.update1] 未定义。(查看:C:\xampp\htdocs\cms\resources\views\categories\create.blade.php)
- sql-server - Django 管理员更改表单/更新模型表单违反 SQL Server 后端的 PRIMARY KEY 约束