通过MySQL加入3个表

时间:2012-07-18 16:08:52

标签: php mysql

我正在尝试连接3个表来访问每个表中的数据。在这种情况下,主表将是Stats表。所以我需要访问Players表来获取他们的NextOpponent,然后我需要访问Defense表来运行NextOpponent上的计算。任何想法都必须实现所有这3个。

当前SQL语句:(目前处于打印重复项的永无止境的循环中)

$query="SELECT * FROM Stats
    INNER JOIN Defense ON Stats.Team =  Defense.Team
    INNER JOIN Players ON Defense.Team = Players.team";

这是我的数据库结构。

Players
-PID (Primary)
-Name
-NextOpponent

Stats
-PID (Primary)
-Name
-Touchdowns
-Receptions
-etc....

Defense
-Team (Unique)
-Points

所以我的预期输出是:

Chris Johnson
Next Opponent: IND
Defense Points: 100

更新:我现在可以访问这些领域,但是当我回应防守点时,它实际上返回了球队防守的分数,而不是他们的下一个对手防守点。

3 个答案:

答案 0 :(得分:1)

像这样:

SELECT * FROM Stats s, Defense d, Players p 
WHERE s.Team = d.Team AND d.Team = p.team;

答案 1 :(得分:1)

如何使用GROUP BY p.id

<强>更新

这是最后的查询:

SELECT * FROM Stats s JOIN Players p ON p.PID = s.PID JOIN Defense d ON d.Team = p.upcoming GROUP BY p.PID

答案 2 :(得分:0)

SQL不会返回无穷无尽的数据集。我建议查看你的代码,以确保你读取循环中的下一条记录。