MySQL使用左连接将多列匹配为一[重复]
Posted
技术标签:
【中文标题】MySQL使用左连接将多列匹配为一[重复]【英文标题】:MySQL matching many columns into one with left join [duplicate] 【发布时间】:2016-11-17 04:06:27 【问题描述】:我有两张这样的桌子
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
's throws Not unique table/alias
错误。仅使用一个会将两列都匹配到父亲或母亲的列。
【问题讨论】:
【参考方案1】:您需要为您的表使用唯一的别名。考虑到您的第一张桌子为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
【讨论】:
以上是关于MySQL使用左连接将多列匹配为一[重复]的主要内容,如果未能解决你的问题,请参考以下文章