2016-11-17 77 views
0

我有2代表这样一个MySQL的许多列匹配到一个与左连接

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

而这一次

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

我想第一个表格转换成该

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

我该怎么做?使用两个LEFT JOIN的投球Not unique table/alias错误。只使用一个可以将两列匹配到父亲或母亲的列。

回答

2

您需要为您的表使用唯一的别名。考虑到你的第一张桌子是users,第二张桌子是countries,你试过这种方式吗?以下应该完全按照您的要求工作。

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