【发布时间】:2018-03-27 10:12:15
【问题描述】:
我很困惑,尝试了多种方法来解决这个问题,但没有成功。 我对 PHP 和 SQL 很陌生。 我有四个表,我试图获得一个 while 循环来从中检索数据。我最大的问题是其中两个表的 id 与另一个表相关,我无法为 Away Team 回显球队名称。
这些是我的桌子:
表 1
Away_Team Team_ID、Away_Team_ID
表 2
Home_Team Team_ID、Home_Team_ID
表 3
团队 Team_Name、Team_ID
表4
夹具 Away_Team_ID、Home_Team_ID、日期
<?php
$data_s = $conn->query('SELECT Teams.Team_Name, Home_team.Home_Team_ID,
Home_team.Team_ID
FROM Teams
JOIN Home_team ON Teams.Team_ID = Home_team.Home_Team_ID
JOIN Fixtures ON Fixtures.Home_Team_ID = Home_team.Home_Team_ID
UNION ALL
SELECT Teams.Team_Name, Away_team.Team_ID, Away_team.Away_Team_ID
FROM Teams
JOIN Away_team
ON Teams.Team_ID = Away_team.Team_ID
JOIN Fixtures ON Fixtures.Away_Team_ID = Away_team.Away_Team_ID;’} ?>
我的 While 循环:
<?php
echo "<table border=1>
<tr>
<th>Date</th>
<th>Home Team</th>
<th>Away Team</th>
<th>Score</th>
</tr>"
while($records = $data_s->fetch()) {
echo "<tr>";
echo "<td>" . $records['Date'] . "</td>";
echo "<td>" . $records['Team_Name'] . "</td>";
echo "<td>" . $records['Team_Name'] . "</td>";
echo "<td>" . $records['Home_Score'] . "-" . $records['Away_Score'] . "</td>";
echo "</tr>";
}
echo "</table>" ?>
我不知道如何让我的第二支球队名称与与该夹具相关的客队名称相呼应。 提前致谢。
【问题讨论】:
-
不确定您是否可以控制数据库布局,但如果只使用
Teams和Fixtures表,这似乎会变得更简单。为什么需要Away_team和Home_team表? -
分数(Home_Score 和 Away_Score)从何而来?
-
我同意,很难理解主队和客队表格的用途。当然,主客场球队已经在赛程表中定义了。这些其他表似乎是多余的。
-
我通过多对多表对规范化不太好。我是不是搞错了?