2014-02-10 91 views
1

所以我不知道如何正确解释这个词,所以我只是解释我想要做的。我创建了一个包含两个表的数据库,其中一个是在1-30之间列出的主键旁边的NBA球队列表。另一张表列出了包含Team1,Team2和Winner列的游戏时间表,所有这些列都是外键(因此它们是1-30之间的数字)。我正在尝试编写一个查询,它将时间表中的所有人都取出来,而不是从外键取数字1-30,我想要获得实际的团队名称。使用表中的多个外键选择一个主键

SELECT schedule.Date, schedule.GameTime, TEAMS.Team_name, TEAMS.Team_name, schedule.Team1_score, schedule.Team2_score, TEAMS.Team_name as Winner 
FROM schedule 
left join TEAMS on schedule.Team1 = TEAMS.Team_key 

这是我至今写的,但我不知道怎么才能得到其他球队的名字,或者比较schedule.Winner = Teams.Team_key比较schedule.Team2 = TEAMS.Team_key以获得赢家的名字。

因此,例如,现在我有:

日期时间TEAM1的Team2 Team1Score Team2Score得主

....... ........湖人湖人...... ............. ....................湖人队

而不是我想要的将是:

日期时间Team1 Team2 Team1Score Team2Score得奖者

....... ....... 。湖人凯尔特人队................... ....................凯尔特人队

谢谢。

回答

0

好了,你有三个外键,所以你可以做如下:

SELECT t1.team_name AS team_one, 
    t2.team_name AS team_two, 
    t3.team_name AS winner FROM schedule s 
INNER JOIN teams t1 ON s.team1 = t1.team_key 
INNER JOIN teams t2 ON s.team2 = t2.team_key 
INNER JOIN teams t3 ON s.winner = t3.team_key 

你有3个连接到不同的别名同桌。

+0

哦,我明白了。非常感谢。 –

相关问题