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

基于分组成员关系的SQL查询:关联表t、o筛选符合条件行的优雅实现

实现方案

最简洁易读的实现方式是通过子查询先找出所有符合关联条件的grouping值,再用IN匹配所有对应行:

SELECT *
FROM t
WHERE grouping IN (
    SELECT DISTINCT t.grouping
    FROM t
    INNER JOIN o ON t.feature = o.feature
);

逻辑说明:子查询部分先关联t和o表,拿到所有t.feature和o.feature匹配的行对应的grouping值,加DISTINCT是为了避免返回重复的分组值提升查询效率;外层查询直接过滤t表中grouping落在这个集合里的所有行,完全匹配需求,查询结果如下:

featuregrouping
A1
B2
E1
F2
G1

如果你的数据库支持CTE(公共表表达式),也可以写成下面这种形式,逻辑拆分更清晰,适合后续复杂逻辑扩展:

WITH matched_group AS (
    SELECT DISTINCT t.grouping
    FROM t
    INNER JOIN o ON t.feature = o.feature
)
SELECT *
FROM t
WHERE grouping IN (SELECT grouping FROM matched_group);

以上两种都是标准SQL语法,兼容几乎所有主流关系型数据库,可读性和执行效率都很高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:27:04