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

如何将GameScores表的FK替换为Teams表对应值并保留原列名?

解决方案:替换外键为球队名称并保留原列名

问题分析

你写的SQL存在两个核心问题:

  • 只和Teams表做了一次内连接,只能拿到主队的名称,没法关联到客队的球队信息
  • 两个Teams.TeamName字段没指定别名,结果里会出现重复列名,也没法对应原GameScores表的HomeTeam、AwayTeam列名要求

正确SQL语句

需要两次连接Teams表,分别为主队和客队指定不同的表别名,再通过AS关键字把球队名称映射成原列名:

SELECT
    GameScores.GameID,
    HomeTeamInfo.TeamName AS HomeTeam,
    AwayTeamInfo.TeamName AS AwayTeam,
    GameScores.HomeTeamScore,
    GameScores.AwayTeamScore
FROM GameScores
INNER JOIN Teams AS HomeTeamInfo 
    ON GameScores.HomeTeam = HomeTeamInfo.TeamID
INNER JOIN Teams AS AwayTeamInfo 
    ON GameScores.AwayTeam = AwayTeamInfo.TeamID

说明

  • 用HomeTeamInfo和AwayTeamInfo作为Teams表的别名,区分主队和客队的关联逻辑
  • 通过AS HomeTeam和AS AwayTeam将球队名称字段重命名为原GameScores表的列名,完全匹配你的需求
  • 内连接(INNER JOIN)只会返回有对应球队信息的赛事记录,如果需要保留无对应球队的赛事,可把INNER JOIN换成LEFT JOIN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:36:11