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

SQL查询:根据另一列条件筛选不含产品C的ID列表

查询未关联指定产品的ID列表

现有一张包含ID、Product两个字段的关系表,表中存储了ID和对应关联产品的明细数据,具体内容如下:

IDProduct
001A
001B
001C
002A
002A
002D
003G
003D
003C
004G
004D
004R

需求为编写SQL,筛选出所有完全没有关联过产品C的ID,示例给出的参考预期结果包含002。

可用SQL写法

方法1:NOT IN 子查询

逻辑直观易读,先查出所有关联过产品C的ID集合,再从全量ID中排除这部分即可,加DISTINCT避免重复ID返回:

SELECT DISTINCT ID
FROM 你的实际表名
WHERE ID NOT IN (
  SELECT ID 
  FROM 你的实际表名 
  WHERE Product = 'C'
);

针对给出的测试数据,该语句会返回002和004两个ID,二者均不存在关联产品C的记录。

方法2:分组聚合判断

通过GROUP BY按ID分组,用聚合函数统计每个ID下是否存在产品C的关联记录,筛选统计值为0的ID即可,不需要嵌套子查询:

SELECT ID
FROM 你的实际表名
GROUP BY ID
HAVING COUNT(CASE WHEN Product = 'C' THEN 1 END) = 0;

两种写法返回结果一致,数据量较大时推荐第二种写法,查询性能更优。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:18:49