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

如何编写SQL查询筛选仅关联Col4为True的Col1字段值

筛选所有关联记录Col4均为true的Col1值

可以通过以下几种常见SQL写法实现需求:

方法一:使用NOT EXISTS排除不符合条件的记录

核心思路是找出不存在任何关联到Table2后Col4为false的记录的Col1值:

SELECT DISTINCT t1.Col1
FROM Table1 t1
WHERE NOT EXISTS (
    SELECT 1
    FROM Table1 t1_inner
    JOIN Table2 t2 ON t1_inner.Col2 = t2.Col3
    WHERE t1_inner.Col1 = t1.Col1
      AND t2.Col4 = false
);

方法二:使用GROUP BY + HAVING统计验证

先关联两张表,按Col1分组后,统计每组中Col4为false的记录数,要求该数量为0:

SELECT t1.Col1
FROM Table1 t1
JOIN Table2 t2 ON t1.Col2 = t2.Col3
GROUP BY t1.Col1
HAVING COUNT(CASE WHEN t2.Col4 = false THEN 1 END) = 0;

方法三:利用布尔值特性的简化写法(兼容性稍差)

如果你的数据库支持将布尔值视为数值(true=1,false=0),可以通过取最小值判断所有记录是否为true:

SELECT t1.Col1
FROM Table1 t1
JOIN Table2 t2 ON t1.Col2 = t2.Col3
GROUP BY t1.Col1
HAVING MIN(t2.Col4) = true;

以上三种方法在你的示例数据中都会返回B和C,A因存在关联到Y(Col4=false)的记录会被排除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:45:26