1

我有两个关系,例如关系 1 和关系 2。关系 1 有 A、B、C 列,关系 2 有 D、E、F 列。

我想将关系 1 的 A 与关系 2 的 D 相加,其中 C = F。对于关系 2 中不存在的 C 值必须出现,而关系 1 中不存在的 F 值也必须出现 如何做这个 postgresql?

4

1 回答 1

2

使用 aFULL [OUTER] JOIN包含来自任一侧的行,而另一侧没有匹配的行:

SELECT COALESCE(r1.a, 0) + COALESCE(r2.d, 0) AS a_d
FROM   relation1      r1
FULL   JOIN relation2 r2 ON r1.c = r2.f

也用于COALESCE()捕获NULL替换缺失列的值。

于 2013-07-18T17:32:50.797 回答