【发布时间】:2017-09-18 12:16:12
【问题描述】:
我目前面临以下问题: 我有 3 个需要从中获取信息的表,并且这两个连接都是一对多的。由于某种原因,第二次连接创建了行的重复,结果第二次返回值被弄乱了(bb.count 乘以第二次连接行的数量)
SELECT aa.id, sum(bb.count), count(DISTINCT cc.id)
FROM aaaa aa
LEFT JOIN bbbb bb ON bb.aa_id = aa.id
LEFT JOIN cccc cc ON cc.bb_id = bb.id
GROUP BY aa.id
有没有办法在不进行其他查询的情况下获得正确的 bb.count 总和? 在我删除第二个左连接的那一刻,一切都很好,不幸的是,我需要它作为第三个返回值,我无法对它们进行分组而不导致结果中出现重复(某种)行。
假设有
bb1.count = 9
bb2.count = 5
还有两行cc.bb_id = bb1.id
我得到的结果是 23 而不是 14。
【问题讨论】:
-
最小的工作样本?..
标签: postgresql duplicates left-join