2015-06-23 53 views
1

嗨,我有两个表,一个名为团队和另一个名为时间表加入两个共享多对一的SQL查询表

在计划表具有以下属性:idawayhomedate ...其中客场和主场的外键的团队表。

Team表具有以下属性:nameid

我的目标是加入团队和计划,以便schedule.id,away,awayTeamName,home,homeTeamName,date都在同一个查询中。这是我迄今为止

SELECT `GAME_ID` , `AWAY` , TEAM.NAME AS awayName, `HOME`, `LEVEL` , 
`LOCATION` , `DATE` 
FROM SCHEDULE 
INNER JOIN TEAM ON SCHEDULE.AWAY = TEAM.TEAM_ID 
OR SCHEDULE.HOME = TEAM.TEAM_ID 

和输出我得到的是这样的事情

GAME_ID | AWAY | awayName | HOME | LEVEL | LOCATION | DATE 
1  | 2 | name1 | 3 |varsity| @home | 06/22/2015 

但我希望它看起来像这样

GAME_ID | AWAY | awayName | HOME | homeName| LEVEL | LOCATION | DATE 
1  | 2 | name2 | 3 | name3 |varsity| @home | 06/22/2015 

如果有人能帮助我将不胜感激

+0

您需要另一个'INNER JOIN'和'Team'表(使用不同的别名)。 –

+0

你能提供这些数据吗?您只会显示您想要的结果,但您的源数据缺失。 – Gene

回答

0

您可以有多个连接。

SELECT SCHEDULE.GAME_ID , away.AWAY, away.NAME AS awayName, home.HOME , home.NAME AS homeName, LEVEL , 
LOCATION , DATE 
FROM SCHEDULE 
INNER JOIN TEAM as away ON SCHEDULE.AWAY = TEAM.TEAM_ID INNER JOIN TEAM as home ON 
SCHEDULE.HOME = TEAM.TEAM_ID 

它会是这样的。

+0

感谢您的帮助 – Alan

0
INNER JOIN TEAM as home ON SCHEDULE.HOME = TEAM.TEAM_ID 

将此添加到您的查询结尾,这会给您两个完全合法的内部连接。

只要你有两个以上的表格在将来处理,你应该能够找到这个有用的。

inner joins on more than 2 table