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

PostgreSQL查询:筛选含org='A'且对应id有多条记录的所有数据

筛选存在org='A'的id对应全部记录的正确SQL实现

你当前的SQL语句逻辑完全偏离需求,WHERE和HAVING用法错误,且分组聚合的逻辑和目标筛选要求不相关。以下是几种能满足需求的PostgreSQL实现方案:

方法一:子查询+IN

先通过子查询提取所有存在org='A'的id,再匹配主表中这些id对应的所有记录:

SELECT id, name, state, org
FROM names
WHERE id IN (SELECT id FROM names WHERE org = 'A');

方法二:EXISTS关联查询

通过关联子查询检查当前记录的id是否存在org='A'的条目,存在则保留该记录,适合大表且id字段有索引的场景:

SELECT n1.id, n1.name, n1.state, n1.org
FROM names n1
WHERE EXISTS (
    SELECT 1
    FROM names n2
    WHERE n2.id = n1.id AND n2.org = 'A'
);

方法三:INNER JOIN

先获取包含org='A'的唯一id集合,再与原表关联获取全量记录,DISTINCT用于避免关联后出现重复(若id为主键可省略):

SELECT DISTINCT n1.id, n1.name, n1.state, n1.org
FROM names n1
INNER JOIN (SELECT DISTINCT id FROM names WHERE org = 'A') n2
ON n1.id = n2.id;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 12:44:56