私は参加しようとしている2つのテーブルを持っています。最初のテーブルには、さまざまなトーナメント(各トーナメントごとに新しいテーブル、すべて同じ構造)でゴルファーやスコアに関する情報が格納されます。MySQL複数テーブルのデータ選択
表1(MField):
+---------------+------+------+----+------+------+
| MGolf | Rd1P | Rd2P | CP | Rd3P | Rd4P |
| Jason Day | 0 | -1 | 5 | 2 | -1 |
| Jordan Spieth | 6 | -2 | 5 | -1 | -1 |
| Rory McIlroy | 2 | 1 | 5 | -5 | 3 |
+---------------+------+------+----+------+------+
表2(名簿):2番目の表は、ユーザーと、彼らはそれぞれのトーナメントのために選んだ5人のゴルファーがいっぱいです
+-------+---------------+
| User | GName |
| User1 | Jason Day |
| User1 | Jordan Spieth |
| User1 | Rory McIlroy |
+-------+---------------+
マイ理想的な出力は次のようになります。
+---------------+------+------+----+------+------+
| User1 | Rd1P | Rd2P | CP | Rd3P | Rd4P |
| Jason Day | 0 | -1 | 5 | 2 | -1 |
| Jordan Spieth | 6 | -2 | 5 | -1 | -1 |
| Rory McIlroy | 2 | 1 | 5 | -5 | 3 |
+---------------+------+------+----+------+------+
私は何を見ていることは次のとおりです。
+---------------+-----+-----+-----+-----+-----+
| User1 | Rd1 | Rd2 | Cut | Rd3 | Rd4 |
| Jason Day | 0 | -1 | 5 | 2 | -1 |
| User1 | Rd1 | Rd2 | Cut | Rd3 | Rd4 |
| Jordan Spieth | 6 | -2 | 5 | -1 | -1 |
| User1 | Rd1 | Rd2 | Cut | Rd3 | Rd4 |
| Rory McIlroy | 2 | 1 | 5 | -5 | 3 |
+---------------+-----+-----+-----+-----+-----+
私は次のクエリを使用しています:
$sql = "
SELECT
User,
GName,
MGolf,
Rd1P,
Rd2P,
CP,
Rd3P,
Rd4P
FROM
Rosters,
MField
WHERE
roster.GName = MGolf
";
$result = $link->query($sql);
echo '<table>';
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo '<tr><td>' . $row['User'] . '</td><td>Rd1</td><td>Rd2</td><td>Cut</td><td>Rd3</td><td>Rd4</td></tr>';
echo '<tr><td>' . $row['GName'] . '</td><td>'.$row['Rd1P'].'</td><td>'.$row['Rd2P'].'</td><td>'.$row['CP'].'</td><td>'.$row['Rd3P'].'</td><td>'.$row['Rd4P'].'</td></tr>';
}
} else {
echo "0 results";
}
echo '</table>';
私がいる問題は、私ということです'User' Nameは一度しか表示されませんが、現在はテーブル内のすべての行が交互に表示されています。私はそれがどのようにクエリが構造化されているのか知っていますが、私は 'MField'テーブルのゴルファー情報の下の行に5人のゴルファーと、 'User'を一度表示する方法を理解できません。この情報を組み合わせるためのクリーンな方法はありますか?
「ユーザー」列がゴルファーごとに異なる場合はどうなりますか? – Barmar