SQL-соединение для нескольких столбцов с идентификаторами - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть две таблицы SQL. Первая таблица хранит список спортсменов с их идентификатором и именем. Например:

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

и т.д ...

Во второй таблице хранятся записи для соревнования по треку (спринту) и идентификатор спортсмена, участвующего в каждой дорожке. Например:

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

и т.д ...

Мне нужно создать запрос SQL, который будет возвращать эту вторую таблицу, но с идентификаторами спортсмена, разрешенными к именам спортсмена. Например:

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

Я предполагаю, что это связано с объединением таблиц, но я не могу разобраться с правильным запросом. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 08 сентября 2018

Соедините второй стол с первым три раза:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...