Как присоединиться к одному столу дважды - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь переключить идентификатор с соответствующим именем из другой таблицы.

Команды:

 1 - team_01 
 2 - team_02

Игры:

 team_a     team_b   score_a   score_b
   1           2        30        40

Что я хочу получить:
Игры:

 team_a     team_b   score_a   score_b
 team_01    team_02    30        40

Я пытаюсь:

    SELECT 
      games.id
    , games.score_team_a
    , games.score_team_b
    , games.time
    , games.category
    , games.team_a
    , games.team_b

    FROM games 

    LEFT JOIN teams t1 ON t1.id = games.team_a
    LEFT JOIN teams t2 ON t2.id = games.team_b

Ответы [ 2 ]

1 голос
/ 20 мая 2019
SELECT 
  games.id
, games.score_team_a
, games.score_team_b
, games.time
, games.category
, t1.<team_name> as team_a  -- reference the join tables
, t2.<team_name> as team_b

FROM games 

LEFT JOIN teams t1 ON t1.id = games.team_a
LEFT JOIN teams t2 ON t2.id = games.team_b
0 голосов
/ 20 мая 2019

Вам не нужно левое соединение, я не понимаю, почему идентификаторы команд в таблице games не совпадают с идентификаторами в таблице teams.
Кроме того, если вам нужно только 4 столбца, почему вы выбираете все остальные столбцы?

   SELECT 
     t1.name team_a,
     t2.name team_b,
     g.score_a,
     g.score_b
   FROM games g
   INNER JOIN teams t1 ON t1.id = g.team_a
   INNER JOIN teams t2 ON t2.id = g.team_b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...