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

如何编写SQL查询未关联Primary产品类型的账户?

查询未拥有Primary产品类型的账户

数据库结构

AccountProduct Type
1Primary
1Addon
2Addon
3Addon
4Primary
4Addon

解决方案

这里提供几种可行的SQL写法,都能返回预期的账户2和3:

方法1:使用NOT IN

SELECT DISTINCT Account
FROM your_table_name
WHERE Account NOT IN (
    SELECT Account
    FROM your_table_name
    WHERE `Product Type` = 'Primary'
);

先通过子查询筛选出所有拥有Primary产品的账户,再在外层查询中排除这些账户,DISTINCT用于避免同一账户因多条Addon记录重复出现。

方法2:使用NOT EXISTS

SELECT DISTINCT t1.Account
FROM your_table_name t1
WHERE NOT EXISTS (
    SELECT 1
    FROM your_table_name t2
    WHERE t2.Account = t1.Account
      AND t2.`Product Type` = 'Primary'
);

这种方式效率通常更高(尤其是表有合适索引时),它会逐个校验每个账户是否存在对应的Primary产品记录,不存在则保留该账户。

方法3:使用GROUP BY + HAVING

SELECT Account
FROM your_table_name
GROUP BY Account
HAVING SUM(CASE WHEN `Product Type` = 'Primary' THEN 1 ELSE 0 END) = 0;

按账户分组后,统计每个账户下Primary产品的数量,数量为0的即为未拥有该类型产品的账户,无需子查询,逻辑直观。

注意:如果使用SQL Server等数据库,字段名中的空格需用方括号[Product Type]替代反引号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 20:52:16