データベースの設計に問題があると思います。あなたのアウトプットは、特定の大会でゲームを表示することだと理解していますか? では、チーム A はチーム B と対戦し、C の大会で対戦しますか?
私が思うに、2つ以上のテーブルを作成する必要があります。
- テーブル A: すべてのチームが含まれています。
- すべての競技を含む表 B (おそらくチームが複数の競技に参加する可能性があるため)。
- 大会でチームに参加するための表C。
- ある大会で試合を行うテーブルD。
表 D では、表 C のレコードのみをリンクしています。理由は、チームが参加していない大会でプレーするのを防ぐためです。
そう :
Table A (Teams) contains columns (idTeam INT, Teamname VARCHAR 50)
Table B (Competitions) contains columns (idComp INT, Competitionname VARCHAR 50)
Table C (TeamCompetitions) contains columns (idTeam INT, idComp INT)
Table D (Games) contains columns (idTeamCompA INT, idTeamCompB INT, idComp INT)
次に、クエリはそれほど難しくありません。
SELECT
TeamA.Teamname as teamA,
TeamB.Teamname as teamB,
comp.Competitionname as competition
FROM
Games
JOIN TeamCompetitions AS compTeamA ON compTeamA.idTeamCompetition = Games.idTeamCompA
JOIN Teams AS TeamA ON compTeamA.idTeam = TeamA.idTeam
JOIN TeamCompetitions AS compTeamB ON compTeamB.idTeamCompetition = Games.idTeamCompB
JOIN Teams AS TeamB ON compTeamB.idTeam = TeamB.idTeam
JOIN Competitions AS comp ON compTeamA.idCompetition = comp.idCompetition
例: チーム
1 Zimbabwe
2 Kenya
3 AJAX
4 Chelsea
5 Feyenoord
6 PEC Zwolle
大会
1 World Championship 2014
2 Dutch Premier League
チーム大会
1 1 1
2 1 1
3 2 1
4 3 1
5 4 1
6 3 2
7 5 2
8 6 2
ゲーム
1 2
2 3
7 6
7 8
クエリの出力:
teamA teamB competition
Zimbabwe Zimbabwe World Championship 2014
Zimbabwe Kenya World Championship 2014
Feyenoord AJAX Dutch Premier League
Feyenoord PEC Zwolle Dutch Premier League
お役に立てれば!