Объединение двух таблиц с двумя результатами из одной таблицы - PullRequest
0 голосов
/ 25 марта 2019

У меня есть вопрос, который я не могу найти правильный способ его поиска. У меня есть две таблицы, к которым мне нужно присоединиться, чтобы получить два результата от одного

teams table

id    name
------------
1     team A
------------
2     team B
games table 

id   home_team   away_team
--------------------------
1    1           2 
--------------------------
2    2           1

Выше должно получиться

game_id   home_team   away_team 
-------------------------------
1         team A      team B
-------------------------------
2         team B      team A

Путаница начинается с "SELECT teams.name AS home_team, teams.name AS away_team", что, очевидно, не имеет никакого смысла.

Кто-нибудь может указать мне правильное направление?

1 Ответ

4 голосов
/ 25 марта 2019

Вам нужно дважды сослаться на одну и ту же таблицу и использовать псевдонимы:

select g.game_id, h.name as home_team, a.name as away_team
from games g
join teams h on h.id = g.home_team
join teams a on a.id = g.away_team

Таким образом, вы связываетесь с таблицей команд, присваивая ей имя h для домашней команды, и снова связываетесь с ней, называя ее a для команды гостей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...