1

以下の 3 つの 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

これら3つのテーブルを次のようにマージしたいと思います:

merged table
ID V1   V2   V3
1       200  
2  100       90
3  200  140  100
4  250       10
5            200

私はあなたの助けに感謝します!

4

2 に答える 2

1

結果で id 列が 1 回だけ必要なため、明らかな選択は次のUSING節との等価結合です。

SELECT id, v1, v2, v3
FROM   a 
FULL OUTER JOIN b USING (id)
FULL OUTER JOIN c USING (id)

この方法では、まったく必要ありませんCOALESCE-多くのテーブルですぐに乱雑になります。

-> SQLfiddle デモ

于 2013-03-18T21:40:37.823 に答える
1
    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)
于 2013-03-18T20:33:48.083 に答える