MySQL查询 - 翻译多列

时间:2015-09-28 19:55:25

标签: mysql

我想知道是否有人可以帮助这个MySQL查询。发现很难找到答案,因为我不知道这是什么类型的查询。

这是所需的输出表:

ID     Capital1  Capital2  Capital3
Maps1  Paris     London    Rome

这是地图表

ID      Country1  Country2  Country3
Map1    France    UK        Italy

这是国家表

*Country*   *Capital*
France    Paris
UK        London
Italy     Rome
Spain     Madrid
Greece    Athens

提前致谢

1 个答案:

答案 0 :(得分:2)

使用不同的别名

加入country表3次
select m.id, 
       c1.capital as capital1,
       c2.capital as capital2,
       c3.capital as capital3
from maps m
left join country c1 on c1.country = m.country1
left join country c2 on c2.country = m.country2
left join country c3 on c3.country = m.country3

顺便说一下,您实际上应该规范您的桌面设计,并且不要将这些国家/地区存储在maps表中。