0

MySQL からデータを取得する方法がわかりません。答えは簡単かもしれませんが、私は立ち往生していて、インターネット上で助けを見つけることができません...

私は 3 つのテーブルを持っています。最初のテーブルはシリーズ、2 番目はチーム、3 番目は id ゲームとします。テーブル構造は次のようなものです。

series:
id
name

teams:
id
name

games:
series_id (relates to series.id)
hometeam_id (relates to teams.id)
visitorteam_id (relates to teams.id)

だから私の問題は、ゲームから行をフェッチすることです。これらのIDは、IDではなく名前である必要があります...

Result should be something like this:
"championship
wolverines
marines"

not like
"1
45
142"

現在、私はこれらのシリーズとチームのテーブルを (perl で) hashref にフェッチし、そこから ID を取得しています。しかし、3 つではなく 1 つの SQL クエリでそれを行うより効率的な方法が必要です。

4

1 に答える 1

1

チーム テーブルに 2 回参加する必要があります (ホーム チーム用に 1 回、ビジター用に 2 回目)。

SELECT g.*,h.name as hometeam_name,v.name as visitorteam_name FROM games g
  INNER JOIN series s ON g.series_id=s.id
  INNER JOIN teams h ON g.hometeam_id=h.id
  INNER JOIN teams v ON g.visitorteam_id=v.id
于 2012-06-23T22:16:01.017 に答える