You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SQL筛选出关联code不含1或2的DISTINCT ID

筛选所有关联code均不为1或2的唯一ID

给定数据表:

ID | code
----------
1  |  1
1  |  2
1  |  4
2  |  3
2  |  3
2  |  4

需求:找出所有满足「关联的所有code都不等于1或2」的唯一ID,预期结果为ID=2。

方法1:使用NOT EXISTS(逻辑直观,适合新手理解)

SELECT DISTINCT ID
FROM your_table t1
WHERE NOT EXISTS (
    SELECT 1
    FROM your_table t2
    WHERE t2.ID = t1.ID
      AND t2.code IN (1, 2)
);

逻辑:逐个检查每个ID,只要该ID下不存在任何code为1或2的记录,就保留这个ID。

方法2:使用GROUP BY + HAVING(聚合统计方式)

SELECT ID
FROM your_table
GROUP BY ID
HAVING SUM(CASE WHEN code IN (1, 2) THEN 1 ELSE 0 END) = 0;

逻辑:按ID分组后,统计每个ID下code为1或2的记录数量,数量为0说明该ID没有符合条件的code,符合要求。

两种方法都能得到预期的ID=2,你可以根据自己的习惯选择使用。

内容的提问来源于stack exchange,提问作者Ykwk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 15:35:19