2016-04-13 18 views
1

私はpostgresqlの3つのテーブルからレコードを結合する必要があります。複数のテーブルからレコードを取得

テーブル構造:

ユーザー

Residence_id | Name | Mobile 

1234   | A | 9876 
23456  | B | 9786 

アカウント

Residence_id | Balance 

1234   | 1000 
4545   | 567 

住所

Residence_id | City | Country 

1234   | Mumbai | India 
0124   | London | UK 

期待される結果:事前に

Residence_id | Name | Mobile | Balance | City | Country 

1234   | A | 9876 | 1000 | Mumbai | India 
23456  | B | 9786 |   |  | 
4545   |  |  | 567  |  | 
0124   |  |  |   | London | UK 

感謝。

答えて

0

私はあなたの最善の策は、すべてのresidence_idsで、滞留テーブルを設定することであると思う:

residence_id(PK): 
1234 
23456 
4545 
0124 

この列には、あなたの他の3つのテーブルに制約(外部キー)として使用することができます。結果を得るには、このテーブルをクエリし、他の3つのテーブルに結合したいと思うでしょう。このようなものはうまくいくはずです:

SELECT residence.residence_id, users.name, users.mobile, accounts.balance, address.city, address.country 
    FROM residence LEFT OUTER JOIN users ON residence.residence_id=users.residence_id 
    LEFT OUTER JOIN accounts ON residence.residence_id=accounts.residence_id 
    LEFT OUTER JOIN address ON residence.residence_id=address.residence_id 
関連する問題