0

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

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

更新:我现在可以访问这些字段,但是当我回显防守点时,它实际上返回了球队防守的点,球员不是他们下一个对手的防守点。

4

3 回答 3

1

像这样:

SELECT * FROM Stats s, Defense d, Players p 
WHERE s.Team = d.Team AND d.Team = p.team;
于 2012-07-18T16:14:02.490 回答
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

于 2012-07-18T16:25:32.817 回答
0

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

于 2012-07-18T16:27:34.517 回答