通过MySQL连接3个表


Joining 3 Tables via MySQL

我正在尝试连接3个表以访问每个表中的数据。本例中的主表将是Stats表。所以我需要访问玩家表来获取他们的NextOpponent,然后我需要访问防御表来对NextOppennt进行计算。任何想法都必须实现这三个目标。

当前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

更新:我现在可以进入球场,但当我回应防守点时,它实际上会返回球员所在球队的防守点,而不是他们下一个对手的防守点。

使用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

像这样:

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

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