2016-04-13 22 views
1

Ich muss Datensätze aus drei Tabellen in PostgreSQL verbinden.Datensätze aus mehreren Tabellen abrufen

Tabellen Strukturen:

Benutzer

Residence_id | Name | Mobile 

1234   | A | 9876 
23456  | B | 9786 

Accounts

Residence_id | Balance 

1234   | 1000 
4545   | 567 

Adresse

Residence_id | City | Country 

1234   | Mumbai | India 
0124   | London | UK 

Strebte Ergebnisse:

Residence_id | Name | Mobile | Balance | City | Country 

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

Vielen Dank im Voraus.

Antwort

0

Ich denke, Ihre beste Wette ist, einen Aufenthaltstisch, mit allen residence_ids einzurichten:

residence_id(PK): 
1234 
23456 
4545 
0124 

Diese Spalte kann als Einschränkung (Fremdschlüssel) verwendet werden, in den anderen 3 Tabellen. Um Ihr Ergebnis zu erhalten, sollten Sie diese Tabelle abfragen und sich Ihren anderen 3 Tabellen anschließen. So etwas sollte funktionieren:

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 
Verwandte Themen