2016-11-17 2 views
0

Ich habe 2 Tabellen wie dieseMySQL viele Spalten in eine mit LEFT JOIN

name | fNatId | mNatId 
======================= 
Smith |  1 |  1 
Doe |  1 |  0 
Owen |  0 |  2 

und dieses

id | countryName 
================ 
0 | U.S. 
1 | U.K. 
2 | Canada 

Und ich möchte Anpassung der ersten Tabelle in dieser

Name | Father's Nationality | Mother's Nationality 
===================================================== 
Smith | U.K.     | U.K. 
Doe  | U.K.     | U.S. 
Owen | U.S.     | Canada 
übersetzen

Wie mache ich das? Mit zwei LEFT JOIN 's wirft Not unique table/alias Fehler. Wenn nur einer verwendet wird, passen die beiden Spalten entweder in die von Vater oder Mutter.

Antwort

2

Sie müssen einen eindeutigen Aliasnamen für Ihre Tabelle verwenden. Betrachten Sie Ihre erste Tabelle als users und zweite Tabelle als countries, haben Sie diesen Weg versucht? Folgendes sollte genau so funktionieren, wie Sie es wünschen.

SELECT u.name as Name, c1.countryName as FathersNationality, c2.countryName as MothersNationality 

FROM users as u 

LEFT JOIN countries as c1 ON c1.id = u.fNatId 

LEFT JOIN countries as c2 ON c2.id = u.mNatId