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

关联表查询:筛选table3的filter≠'abc'的table1数据

需求修正与SQL查询方案

需求修正

原需求表述可优化为:查询所有关联了满足filter != 'abc'条件的table3记录的table1数据(注:若需包含未关联任何table3的table1数据,需额外说明,以下方案默认仅包含关联符合条件table3的table1)

SQL查询方案

方案1:JOIN关联查询

通过关联三张表,过滤掉table3中filter为'abc'的记录,最终返回不重复的table1数据:

SELECT DISTINCT t1.id_1, t1.data
FROM table1 t1
JOIN table2 t2 ON t1.id_1 = t2.id_1
JOIN table3 t3 ON t2.id_2 = t3.id_2
WHERE t3.filter != 'abc';

方案2:EXISTS子查询

通过子查询判断table1是否关联了符合条件的table3记录,自动避免重复数据:

SELECT t1.id_1, t1.data
FROM table1 t1
WHERE EXISTS (
    SELECT 1
    FROM table2 t2
    JOIN table3 t3 ON t2.id_2 = t3.id_2
    WHERE t2.id_1 = t1.id_1
      AND t3.filter != 'abc'
);

补充场景说明

若实际需求是排除所有关联过filter = 'abc'的table3记录的table1(即只要table1关联的任意一个table3的filter是'abc'就排除,包含未关联任何table3的table1),SQL需调整为:

SELECT t1.id_1, t1.data
FROM table1 t1
WHERE NOT EXISTS (
    SELECT 1
    FROM table2 t2
    JOIN table3 t3 ON t2.id_2 = t3.id_2
    WHERE t2.id_1 = t1.id_1
      AND t3.filter = 'abc'
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:52:00