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

SQL多表查询需求:用玩家与赛事名称替换参与者表中的ID

解决方法:关联三张表实现ID替换

你只需要在现有查询基础上,再关联Events表,通过participants_list里的event_id匹配到对应的赛事名称即可。推荐使用显式JOIN语法(比隐式的逗号分隔更清晰易读),具体调整后的SQL语句如下:

方案1:分字段输出姓名和赛事名

SELECT 
    pl.surname AS Name,
    e.event_name AS Tournament
FROM 
    participants_list p
INNER JOIN 
    players pl ON pl.player_id = p.player_id
INNER JOIN 
    events e ON e.event_id = p.event_id;

这个语句会返回两列数据,分别是玩家姓名和赛事名称,你可以根据需要调整列的别名。

方案2:输出竖线分隔的合并格式

如果希望直接得到姓名 | 赛事名的单列格式,可以用字符串拼接函数(不同数据库语法略有差异,以下以MySQL为例):

SELECT 
    CONCAT(pl.surname, ' | ', e.event_name) AS Result
FROM 
    participants_list p
INNER JOIN 
    players pl ON pl.player_id = p.player_id
INNER JOIN 
    events e ON e.event_id = p.event_id;

关键说明:

  • 以participants_list作为主表,通过它的player_id和event_id分别关联Players和Events表,从而获取对应的名称字段。
  • 显式INNER JOIN语法能明确表之间的关联逻辑,比旧的逗号分隔写法更直观,也更容易排查关联错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:57:58