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

如何在SQL中结合分组与条件筛选同时关联A、B公司的产品

筛选同时关联指定公司的产品

针对你的需求,要找出同时关联公司A和B的产品,原查询仅通过COUNT(*) > 1筛选无法精准匹配特定公司,这里提供几种实用的解决方案:

方法一:条件分组筛选(推荐)

先过滤出目标公司的记录,再通过分组统计确保产品同时包含A和B:

SELECT product 
FROM table_name
WHERE company IN ('A', 'B') -- 先过滤无关数据,提升查询效率
GROUP BY product 
HAVING COUNT(DISTINCT company) = 2 -- 确保产品同时关联A、B两家公司
ORDER BY product;

逻辑说明:WHERE子句先只保留A和B的记录,分组后统计不同公司的数量为2,就意味着该产品同时存在A和B的关联记录。

方法二:多EXISTS子查询

用多个EXISTS分别验证产品是否关联A和B,逻辑更直观:

SELECT DISTINCT product
FROM table_name t1
WHERE EXISTS (
    SELECT 1 
    FROM table_name t2 
    WHERE t2.product = t1.product AND t2.company = 'A'
)
AND EXISTS (
    SELECT 1 
    FROM table_name t3 
    WHERE t3.product = t1.product AND t3.company = 'B'
);

逻辑说明:每个EXISTS子查询独立检查当前产品是否存在对应公司的记录,只有两个条件都满足时才返回该产品。

方法三:自连接匹配

通过自连接找到同一产品下分别关联A和B的记录:

SELECT DISTINCT t1.product
FROM table_name t1
JOIN table_name t2 
    ON t1.product = t2.product 
    AND t1.company = 'A' 
    AND t2.company = 'B';

逻辑说明:将表自连接,关联条件为同一产品且分别对应A、B公司,最后去重得到符合要求的产品。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 06:39:56