我无法弄清楚为什么我的输出重复,但我确定这是不正确的连接。一般来说,我是 SQL 的新手,所以这可能是一个低效的查询。
SELECT a.id, a.number, a.number2, b.id, b.number3, b.number4, c.id, c.score, (a.number - b.number3) as a_b_difference, (a.number2 - b.number4) as a_b_difference3 FROM file a
INNER JOIN file b on a.id = b.id
INNER JOIN file c on a.id = c.id
我想减去两个字段并将所有三个文件合并到 id 上。但是,我的结果填充了重复数据。
这是我得到的样本:
最佳答案
c.id
是a.id
,所以不需要join
:
SELECT a.id, a.number, a.number2, b.id, b.number3, b.number4, a.id, c.score,
(a.number - b.number3) as a_b_difference,
(a.number2 - b.number4) as a_b_difference3
FROM file a INNER JOIN
file b
ON a.id = b.id;
至于你的问题的其余部分,我没有看到重复。如果生成的行过多,您可能需要修复 JOIN
条件。如果整行被复制,您可以使用 SELECT DISTINCT()
。如果您想要一组中的一行,您可以使用 GROUP BY
或 DISTINcT ON
。
关于sql - Postgresql 在多个连接上返回重复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49863419/