1

我对PHP/MySQL非常陌生,而且遇到了一些麻烦。帮助将不胜感激。引用多个外键php mysql

我有2个表奠定了这样:

表队

TEAM_ID,TEAM_NAME

表时间表

game_id,GAME_TIME,team1_id,team2_id,位置

schedule.team1_id and sch edule.team2_id都是team.team_id的外键。

我想引用team_name使用team1_id和team2_id,但我似乎只能得到team1的名称。这是我用过的查询失败。

SELECT * FROM team 
AS t JOIN schedule AS s 
ON t.team_id = s.team1_id 
WHERE location='1'; 

我试图输出数据:

while (mysql_fetch_assoc($result)) { 
    echo $row['team_name']; 
} 

这对我来说很明显的,为什么这是行不通的,因为表只需要我的一列加入。帮帮我!我完全失去了如何解决这个问题。我相信有一个简单的解决方案,但我似乎无法找到它!

回答

1

关于您希望查询的结果看起来不太清楚,但我假设您希望获得有关两个参与每个游戏的团队的信息。要做到这一点,你必须加入team表格两次:

SELECT t1.name, t2.name, s.* 
FROM schedule AS s 
INNER JOIN team AS t1 ON t1.team_id = s.team1_id 
INNER JOIN team AS t2 ON t2.team_id = s.team2_id 
WHERE s.location='1'; 
+0

非常感谢你马特!表成功加入,并且sql结果返回'team_name','team_name'等等等等......我的下一个问题是......如何将它们输出到表中?我不太明白如何输出第一个team_name和第二个team_name,因为它们在mysql_fetch_assoc($ result)返回的数组中都被命名为“team_name”。 – 2011-06-06 15:56:41

+0

您可以在'select'子句和'from'子句中使用别名,例如'select t1.name AS t1name,t2.name as t2name'等 – 2011-06-06 16:02:39

+0

AHHHAAAAAAA!先生,我非常感谢你的帮助! – 2011-06-06 16:04:28