2017-02-12 7 views
-1

Сценарий У меня есть список светильников, как below.Fixtures представлены команды идентификаторамиSQL запрос на выборку, чтобы отобразить имя из другой таблицы в двух отдельных столбцах

Крепеж Таблица

FixtureID HomeTeam AwayTeam 
1   1   2 
2   2   4 

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

Таблица команды

TeamID TeamName 
1  Team1 
2  Team2 

Мне нужно выполнить запрос, который будет захватывать светильники и изменить TeamID годов в название команды, так это выглядит, как

HomeTeam TeamName AwayTeam TeamName 
1  Team1 2   Team2 
2  Team2 4   Team4 

На данный момент у меня

SELECT Fixtures.HomeTeam, Teams.TeamName, Fixtures.AwayTeam 
FROM Fixtures INNER JOIN 
Teams ON Fixtures.HomeTeam = Teams.TeamID 

Какие выходы :

HomeTeam TeamName    AwayTeam 
1  Donegal Celtic  2 
2  Banbridge Town  1 
3  Limavdy United  5 

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

enter image description here

ответ

2

Вам просто нужно два присоединяется:

SELECT f.HomeTeam, th.TeamName, f.AwayTeam, ta.TeamName 
FROM Fixtures f INNER JOIN 
    Teams th 
    ON f.HomeTeam = th.TeamID INNER JOIN 
    Teams ta 
    ON f.AwayTeam = ta.TeamId; 
1

Вы должны join таблицы команды дважды, например .:

SELECT f.FixtureID, t1.TeamID, t1.name, t2.TeamID, t2.name 
FROM fixtures f JOIN team t1 ON f.hometeam = t1.TeamID 
JOIN team t2 on f.awayteam = t2.TeamID; 

Вот SQL Fiddle.

1

Соединиться Teams таблица с Fixtures Таблица.

SELECT Fixtures.HomeTeam, t1.TeamName, Fixtures.AwayTeam, t2.TeamName 
FROM Fixtures INNER JOIN 
Teams t1 
ON Fixtures.HomeTeam = t1.TeamID 
INNER JOIN 
Teams t2 
ON Fixtures.AwayTeam = t2.TeamId; 

Working образец.