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

PostgreSQL中如何用表A的id匹配查询表B的三个关联ID字段

PostgreSQL关联查询实现方案

基础关联查询(保留所有A表记录)

直接通过多字段OR条件关联两张表,写法直观,适合中小数据量场景:

SELECT
  a.id,
  a.folder,
  b.hours,
  b.name -- 按需保留B表字段
FROM a
LEFT JOIN b
  ON a.id = b."Folder Id"
  OR a.id = b."Space Id"
  OR a.id = b."List Id"
ORDER BY a.id;

注意:表B的字段名包含空格,PostgreSQL中引用带特殊字符/空格的字段必须用双引号包裹,否则会触发标识符识别错误。如果不需要保留无匹配的A表记录,将LEFT JOIN替换为INNER JOIN即可。

聚合统计查询(计算每个id对应总时长)

如果需要统计每个A表id匹配到的总工作时长,可以使用横向子查询实现,统计逻辑更清晰:

SELECT
  a.id,
  a.folder,
  COALESCE(SUM(b.hours), 0) AS total_hours
FROM a
LEFT JOIN LATERAL (
  SELECT hours FROM b
  WHERE a.id IN ("Folder Id", "Space Id", "List Id")
) b ON true
GROUP BY a.id, a.folder
ORDER BY a.id;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:09:04