我正在处理一个查询,以查找不触发某些规则的所有应用程序。触发的每个规则都记录在与应用程序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)
但是,这只会返回没有这些规则编号的行。我希望它跳过附加了那些RuleNumbers之一的任何ID,所以我的结果应该是与ID 4相关的行。
答案 0 :(得分:1)
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)
);
答案 1 :(得分:0)
您可以使用子查询查找触发规则的ID,然后使用该子ID排除这些ID ...
SELECT DISTINCT ID
FROM Table
WHERE ID NOT IN
(
SELECT ID FROM Table WHERE RuleNumber IN (2,3)
)