MySQL的PHP的ID在一个表中,而不是另一个
问题描述:
| Fixture_ID | League_ID | Home_Team | Away_Team
| 1 | 1 | 1 | 2
| 2 | 1 | 2 | 3
| 3 | 1 | 3 | 1
| Result_ID | Fixture_ID | Home_Goals | Away_Goals
| 1 | 1 | 2 | 0
| Team_ID | Team_Name |
| 1 | Team A
| 2 | Team B
| 3 | Team C
如何加入表只显示还没有结果inputed灯具,但输出的当显示灯具时(在下拉列表中),实际的球队名称(球队A v球队B)?
下面的代码适用于所有输出灯具:
echo '<td> <select name ="fixture_id">';
// TRY TO SHOW FIXTURES WITH NO RESULTS
$stmt = $pdo->prepare('SELECT f.*, t1.Team_Name AS Home, t2.Team_Name AS Away
FROM Fixture f
INNER JOIN Team t1 ON f.Home_Team = t1.Team_ID
INNER JOIN Team t2 ON f.Away_Team = t2.Team_ID');
$stmt->execute();
foreach ($stmt as $row) {
echo '<option>' . $row['Home'] . ' v ' . $row['Away'] . '</option>';
}
?>
答
你的SQL应该是这样的:
SELECT f.*, t1.Team_Name AS Home, t2.Team_Name AS Away
FROM Fixture f
INNER JOIN Team t1 ON f.Home_Team = t1.Team_ID
INNER JOIN Team t2 ON f.Away_Team = t2.Team_ID
LEFT JOIN Result r ON f.Fixture_ID = r.Fixture_ID
WHERE r.id IS NULL;
你的答案就足够了,没必要重写一遍吧:) –
谢谢sooooo多! – H1ggsy
@Sam Higgs:请将我的答案标记为正确的答案(即使没有其他答案可用),并且如果您已经允许,请将其取消。谢谢! – GreenTurtle