sql - 忽略所有具有特定属性的应用程序
问题描述
我正在查询所有不触发某些规则的应用程序。触发的每个规则都记录在与应用程序 ID 相关联的单独行中。
数据如下所示:
ID RuleNumber
2 1
2 2
2 3
3 2
3 3
4 1
4 5
这是我尝试过的:
SELECT ID,RuleNumber FROM Table WHERE RuleNumber not in (2,3)
但这只会返回没有这些规则编号的行。我希望它跳过任何附加了其中一个 RuleNumber 的 ID,所以我的结果应该是与 ID 4 关联的行。
解决方案
SELECT DISTINCT ID
FROM Table T1
WHERE NOT EXISTS (
SELECT 1
FROM Table T2
WHERE T1.ID = T2.ID
AND T2.RuleNumber IN (2,3)
);
推荐阅读
- json - PostGreSql 中的 JSON 列操作
- powerbuilder - Powerbuilder MLE Control 中的自动换行
- awk - 从列中减去一个数字,同时保留其余部分
- python - 如何使用 Django 设置可选参数?
- swift - 你如何在 ForEach Swiftui 的结构列表中使用枚举?
- css - 如何将颜色渐变修复到固定顶部导航栏?
- javascript - 使用 GenerateTokenRequestV2 在 Embedded Power BI 中创建报表
- c# - 为什么在 OnPaint 事件中花费的时间似乎取决于刷新率?
- java - 将 mongo shell 查询转换为 spring 数据 mongo
- nginx - 从 nginx 代理后面的 dotnet 核心获取 gull 请求 URL