假设有以下三个PostgreSQL表要与公共ID列合并。
table A
ID V1
2 100
3 200
4 250
table B
ID V2
1 200
3 140
table C
ID V3
2 90
3 100
4 10
5 200我想将这三个表合并如下:
merged table
ID V1 V2 V3
1 200
2 100 90
3 200 140 100
4 250 10
5 200非常感谢您的帮助!
发布于 2013-03-19 05:40:38
由于您只希望id列在结果中出现一次,因此最明显的选择是使用USING子句进行等值连接:
SELECT id, v1, v2, v3
FROM a
FULL OUTER JOIN b USING (id)
FULL OUTER JOIN c USING (id)这样一来,你也完全不需要COALESCE了--它很快就会处理很多表格。
发布于 2013-03-19 04:33:48
select A.*,B.V2,C.V3
from
A
full outer join B on A.id = B.id
full outer join C on C.id = coalesce(A.id,B.id)https://stackoverflow.com/questions/15486208
复制相似问题