加入两个共享多对一关系的 SQL 表

Joining Two SQL Tables That share a many to one Realtionship

嗨,我有两个 table,一个叫 Team,另一个叫 Schedule

Schedule table 具有以下属性:idawayhomedate...其中 away 和 home 是外键到团队 table。

团队 table 具有以下属性:nameid

我的目标是加入 Team 和 Schedule,以便 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

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

您可以有多个加入。

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

会是这样的。

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

将此添加到查询的末尾,这将为您提供两个完全合法的内部联接。

以后只要您有两个以上的表要处理,您就会发现它很有用。

inner joins on more than 2 table