gpt4 book ai didi

mysql - SQL连接具有ID的多列

转载 作者:行者123 更新时间:2023-11-29 01:49:17 25 4
gpt4 key购买 nike

我有两个 SQL 表。第一个表存储运动员列表及其 ID 和姓名。例如:

athlete_id | first_name | last_name
-----------|------------|----------
1 | Matthew | Reese
2 | Tiffanie | Renz
3 | Tom | Dow

等...

第二个表存储赛道(短跑)项目的条目,以及在每条车道上比赛的运动员的 ID。例如:

event_id | lane1_athlete_id | lane2_athlete_id | lane3_athlete_id  
---------|------------------|------------------|-----------------
1 | 1 | 15 | 24
2 | 18 | 2 | 4
3 | 78 | 50 | 3

等...

我需要创建一个 SQL 查询,它将返回第二个表,但运动员 ID 解析为运动员姓名。例如:

event_id | lane1_athlete | lane2_athlete | lane3_athlete  
---------|---------------|---------------|--------------
1 | Matthew Reese | Lesa Allain | Nicole Spiers
2 | Emmy Bartol | Tiffanie Renz | Louise Baier
3 | Zack Bui | Norah Flagg | Tom Dow

我想这涉及表连接,但我想不出正确的查询。任何帮助将不胜感激。

最佳答案

将第二个表连接到第一个表,三次:

SELECT
e.event_id,
CONCAT(a1.first_name, ' ', a1.last_name) AS lane1_athlete,
CONCAT(a2.first_name, ' ', a2.last_name) AS lane2_athlete,
CONCAT(a3.first_name, ' ', a3.last_name) AS lane3_athlete
FROM events e
LEFT JOIN athletes a1
ON e.lane1_athlete_id = a1.athlete_id
LEFT JOIN athletes a2
ON e.lane2_athlete_id = a2.athlete_id
LEFT JOIN athletes a3
ON e.lane3_athlete_id = a3.athlete_id;

关于mysql - SQL连接具有ID的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52231701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com