私はまだSQLを学んでおり、私の脳はこれに苦労しています。
3 つのテーブルがあるとします。
teams
players
そしてteams_players
私のリンクテーブルとして
私がやりたいことは、クエリを実行して各チームとそのプレーヤーを取得することだけです。
私はこれを試しました:
SELECT *
FROM teams
INNER JOIN teams_players
ON teams.id = teams_players.team_id
INNER JOIN players
ON teams_players.player_id = players.id
しかし、各チームの各プレーヤーに対して個別の行が返されました。JOIN はそれを行う正しい方法ですか、それとも何か他のことをすべきですか?
- - - - - - - - - - - - - - - - - - - - - 編集
わかりましたので、私が聞いたところによると、これは必ずしも悪い方法ではありません。ループを実行している間、チームごとにデータをグループ化する必要があります。
提供された変更された SQL ステートメントはまだ試していませんが、今日試してみて、またご連絡いたします。
構造に関する質問に答えるには、返された行構造について考えていなかったと思います。これは、混乱の原因の一部です。この特定のケースでは、各チームは 4 人 (またはそれ以下) のプレイヤーに制限されているため、次のような構成が役立つと思います。
teams.id, teams.name, players.id, players.name, players.id, players.name, players.id, players.name, players.id, players.name,
1 Team ABC 1 Jim 2 Bob 3 Ned 4 Roy
2 Team XYZ 2 Bob 3 Ned 5 Ralph 6 Tom