SQL多表关联查询:通过两个球队ID获取对应球队名称
查询语句修改方案
你原语句有两个需要调整的点:
- 存在笔误:关联match表时写的表名
mattch多了一个t,需要修正为正确表名match - 由于
match表的主队ID、客队ID都关联teams表的ID字段,需要两次JOIN teams表,分别给两次关联的teams表起不同别名,用来区分主队、客队的信息映射。
修改后的可直接运行的语句如下:
SELECT match.ID AS 比赛ID, ht.Name AS 主队名称, at.Name AS 客队名称, match_results.Results AS 比赛比分 FROM match_results JOIN match ON match.ID = match_results.Match_ID JOIN teams ht ON match.ht_ID = ht.ID JOIN teams at ON match.at_ID = at.ID;
注意:给两次关联的teams表设置别名是核心操作——同一张表在同一查询中承担两个关联角色时,必须用别名区分,否则数据库无法识别字段对应的关联关系,会抛出字段歧义报错。
内容的提问来源于stack exchange,提问作者EBo
相关产品推荐
相关产品推荐

