【问题标题】:referencing multiple foreign keys php mysql引用多个外键php mysql
【发布时间】:2011-06-06 15:26:19
【问题描述】:

我对 php/MySQL 很陌生,但遇到了一些麻烦。非常感谢您的帮助。

我有 2 张这样布置的桌子:

桌队

team_id,team_name

餐桌时间表

game_id,game_time,team1_id,team2_id,位置

schedule.team1_id 和 schedule.team2_id 都是 team.team_id 的外键。

我正在尝试使用 team1_id 和 team2_id 引用 team_name,但我似乎只能获得 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'];
}

这对我来说很明显为什么这不起作用,因为这些表仅在我需要的列之一上连接。帮助!我完全不知道如何解决这个问题。我相信有一个简单的解决方案,但我似乎找不到它!

【问题讨论】:

    标签: php mysql foreign-keys new-operator foreign-key-relationship


    【解决方案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';
    

    【讨论】:

    • 非常感谢马特!表已成功加入,sql 结果返回'team_name'、'team_name'等...我的下一个问题是..如何将它们输出到表中?我不太明白如何输出第一个团队名称和第二个团队名称,因为它们在 mysql_fetch_assoc($result) 返回的数组中都被命名为“团队名称”。
    • 您可以在select 子句和from 子句中使用别名,例如select t1.name AS t1name, t2.name as t2name
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多