我正在尝试连接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
更新:我现在可以访问这些领域,但是当我回应防守点时,它实际上返回了球队防守的分数,而不是他们的下一个对手防守点。
答案 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不会返回无穷无尽的数据集。我建议查看你的代码,以确保你读取循环中的下一条记录。