2016-07-31 4 views
2

Моя база данных SQL выглядит следующим образом ниже:SQL две строки в одной

Таблица Совпадение:

id  | homeTeamId | guestTeamId 
------ | ---------- | ---------- 
1  | 1   | 2 
------ | ---------- | ---------- 
2  | 13   | 9 

Таблица Команда:

id  | Name 
------ | ------ 
1  | Arsenal London  
------ | ------ 
2  | Manchester City  
------ | ------ 
9  | Tottenham  
------ | ------ 
13  | Aston Villa  

Теперь я хочу, чтобы сделать запрос, возврат все совпадения с моими командами. Мой вывод должен выглядеть следующим образом:

id  | homeTeamId | guestTeamId | hometeam  | guestteam 
------ | ---------- | ----------- | ---------------| --------- 
1  | 1   | 2   | Arsenal London | Manchester City 
------ | ---------- | ----------- | ---------------| --------- 
2  | 13   | 9   | Aston Villa | Tottenham 

Итак, как я могу это сделать? Я много пробовал с внутренними объединениями, левыми объединениями, группой, ... Но проблема в том, что мне нужно два объединения на одной таблице и дать псевдоним для того же столбца.

Благодарим за помощь!

ответ

4

Существует несколько способов сделать это. Вот один из них с использованием нескольких joins:

select m.id, m.hometeamid, m.guestteamid, t1.name hometeam, t2.name guestteam 
from match m 
    join team t1 on m.hometeamid = t1.id 
    join team t2 on m.guestteamid = t2.id 
+0

Да, это работает! Намного легче, чем я думал: D Спасибо !!!! – user3384194

+0

Если это ответит на ваш вопрос, пожалуйста, обратите внимание на его маркировку. @ user3384194 – antorqs

Смежные вопросы