MySQL中如何关联两张表的两个ID列获取对应名称?
如何同时关联两列替换ID为对应名称
你的表结构
Match表
| date | team1 | team2 |
|---|---|---|
| 2/2/2019 | t001 | t002 |
| 3/2/2019 | t007 | t002 |
Team表
| teamID | teamName |
|---|---|
| t001 | ABCD |
| t002 | EFGH |
| t003 | IJKL |
| t007 | MNOP |
解决方案
你需要两次内连接Team表,并为每次连接的表指定不同的别名,这样就能分别匹配team1和team2对应的teamName。
正确的SQL语句如下:
SELECT m.date, t1.teamName AS team1_name, t2.teamName AS team2_name FROM Match m INNER JOIN Team t1 ON m.team1 = t1.teamID INNER JOIN Team t2 ON m.team2 = t2.teamID;
说明
- 第一次连接(别名
t1):将Match表的team1与Team表的teamID关联,获取对应队伍名称; - 第二次连接(别名
t2):将Match表的team2与Team表的teamID关联,获取另一支队伍名称; - 使用
AS定义列别名,让查询结果的列名更直观易读。
查询结果
执行上述SQL后,你会得到如下结果:
| date | team1_name | team2_name |
|---|---|---|
| 2/2/2019 | ABCD | EFGH |
| 3/2/2019 | MNOP | EFGH |
内容的提问来源于stack exchange,提问作者Kalana
相关产品推荐
相关产品推荐

