You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL关联表查询:将team1id/team2id替换为teamName语法问题

解决matches表关联teamNames表替换对战队伍ID为名称的问题

你需要两次关联teamNames表,分别对应matches里的team1id和team2id,并且给每次关联的表设置不同别名,避免数据库混淆关联逻辑。之前的错误应该是只做了一次关联,导致两个ID都匹配到同一条teamNames数据,所以显示同一个名称。

正确的SQL语句如下:

SELECT 
    m.id,
    t1.teamName AS team1id,
    t2.teamName AS team2id,
    m.date
FROM matches m
INNER JOIN teamNames t1 ON m.team1id = t1.teamId
INNER JOIN teamNames t2 ON m.team2id = t2.teamId;

语句说明:

  • 给matches表取别名m,简化写法
  • 第一次关联teamNames表取别名t1,匹配m.team1id和t1.teamId,拿到第一支队伍的名称
  • 第二次关联teamNames表取别名t2,匹配m.team2id和t2.teamId,拿到第二支队伍的名称
  • 通过AS把t1.teamName和t2.teamName重命名为原来的列名team1id和team2id,和你期望的结果列名一致

执行这条语句后,就能得到你想要的结果:
+----+---------+---------+---------------------+
| id | team1id | team2id | date |
+----+---------+---------+---------------------+
| 1 | cdx | k4h | 2023-07-26 03:12:00 |
+----+---------+---------+---------------------+

内容的提问来源于stack exchange,提问作者Jr b

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 02:24:55