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

如何编写SQL查询从单表筛选仅m、仅EBB及两者均有的数据

单表分类查询解决方案

原始数据表

idnameproduct
1saim
2saiEBB
3srim
4ramm
5sitaEBB
6sivaEBB

1. 查询仅拥有product='m'的记录

使用NOT EXISTS筛选出没有对应EBB产品的用户记录:

SELECT t1.*
FROM your_table t1
WHERE t1.product = 'm'
AND NOT EXISTS (
    SELECT 1
    FROM your_table t2
    WHERE t2.name = t1.name
    AND t2.product = 'EBB'
);

预期结果:

idnameproduct
3srim
4ramm

2. 查询仅拥有product='EBB'的记录

逻辑与上述类似,筛选出没有对应m产品的用户记录:

SELECT t1.*
FROM your_table t1
WHERE t1.product = 'EBB'
AND NOT EXISTS (
    SELECT 1
    FROM your_table t2
    WHERE t2.name = t1.name
    AND t2.product = 'm'
);

预期结果:

idnameproduct
5sitaEBB
6sivaEBB

3. 查询同时拥有m和EBB的记录

方法一:使用EXISTS关联验证

SELECT t1.*
FROM your_table t1
WHERE EXISTS (
    SELECT 1
    FROM your_table t2
    WHERE t2.name = t1.name
    AND t2.product = CASE WHEN t1.product = 'm' THEN 'EBB' ELSE 'm' END
);

方法二:分组筛选后关联

先通过分组找出同时拥有两种产品的用户,再关联原表获取完整记录:

SELECT t.*
FROM your_table t
JOIN (
    SELECT name
    FROM your_table
    WHERE product IN ('m', 'EBB')
    GROUP BY name
    HAVING COUNT(DISTINCT product) = 2
) AS grouped ON t.name = grouped.name;

预期结果:

idnameproduct
1saim
2saiEBB

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:11:14