次のようなバスケットボールの試合のテーブルとバスケットボールチームのテーブルがあります。
MATCHES:
ID | HOME_TEAM_ID | AWAY_TEAM_ID | SCORE_HOME | SCORE_AWAY
----------------------------------------------------------------
1 | 20 | 21 | 80 | 110
2 | 12 | 10 | 96 | 90
TEAMS:
ID | NAME
-------------------------
20 | BULLS
21 | KNICKS
試合 ID を指定して、スコアとチーム名の両方を取得したいと考えています。team テーブルから両方のチーム名を取得する JOIN を作成するにはどうすればよいですか?
私が試してみました:
SELECT *
FROM matches AS m
JOIN teams AS t1 ON t.id = m.home_team_id
JOIN teams AS t2 ON ti.id = m.away_team_id
WHERE m.id = 1
...しかし、ここでは 2 番目の JOIN ステートメントの結果が最初の JOIN ステートメントをオーバーライドしているように見えるため、1 つの名前しか取得できません。
[id] => 1
[score_home] => 80
[score_away] => 110
[name] => KNICKS
私も試しました:
SELECT *
FROM matches AS m
JOIN teams AS t ON (t.id = m.home_team_id OR t.id = m.away_team_id)
WHERE m.id = 1
...2 つの結果を返します。
[id] => 1
[score_home] => 80
[score_away] => 110
[name] => BULLS
と
[id] => 1
[score_home] => 80
[score_away] => 110
[name] => KNICKS
このようなものを返すクエリを作成したいと思います
[id] => 1
[score_home] => 80
[score_away] => 110
[name_home_team] => BULLS
[name_home_team] => KNICKS
それは可能ですか?