2

Xboxの仮想ホッケーリーグの統計追跡Webページに取り組んでいます。基本的なテーブルレイアウトの設定はありますが、スケジュールを表示できるクエリの作成方法に苦労しています。以下は私の基本的なテーブルレイアウトです。私がやりたいのは、次のように表示することです。

ゲーム1:
ニューヨークvsシカゴ
デトロイトvsボストン

ゲーム2:
ボストンvsニューヨーク
シカゴvsデトロイト

SELECT homeTeam.name AS HOME_TEAMNAME
FROM GameSchedule Sched

INNER JOIN GameStats GameStatsHome
ON Sched.ID = GameStatsHome.gameSchedule_ID
AND Sched.homeTeam_ID = GameStatsHome.team_ID

INNER JOIN Team homeTeam
ON homeTeam.ID = gameStatsHome.team_ID

問題が発生しているのは、GameSchedule.awayTeam_IDとGameSchedule.homeTeam_IDの両方のTeam.nameを取得しようとしていることです。しかし、私はこれを行う方法を理解することができませんでした。近くにいるような気がしますが、それでも、自分が何をしているのかわからず、この1つのクエリを理解するために約3日を費やしました。誰かが私を正しい方向に向けることができれば、私は私が必要とする残りのことのために良いはずだと思います...どんな助けでも大歓迎です。

Table: Team
-----------------------------------------------------------
| ID | name       | abbreviation | conference | division |
-----------------------------------------------------------
|  1  | New York  |      TMA     |      1     |     1    |
|  2  | Chicago   |      TMB     |      1     |     1    |
|  3  | Detroit   |      TMC     |      1     |     1    |
|  4  | Boston    |      TMD     |      1     |     1    |
-----------------------------------------------------------

Table: GameSchedule
------------------------------------------------
| ID | awayTeam_ID | homeTeam_ID | gameTime_ID |
------------------------------------------------
| 1  |     1       |      2      |      1      |
| 2  |     3       |      4      |      1      |
| 3  |     4       |      1      |      2      |
| 4  |     2       |      3      |      2      |
------------------------------------------------

Table: GameStats
------------------------------------------
| ID | gameSchedule_ID | team_ID | goals |
------------------------------------------
| 1  |        1        |    1    |   5   |
| 2  |        1        |    2    |   3   |
| 3  |        2        |    3    |   6   |
| 4  |        2        |    4    |   1   |
| 5  |        3        |    1    |   2   |
| 6  |        3        |    4    |   5   |
------------------------------------------
4

1 に答える 1

0

これにより、両方の名前が提供されます

SELECT
    away.Name as AwayTeam,
    home.Name as HomeTeam
FROM
    Game_Schedule gs
    JOIN Team away ON t.ID = gs.AwayTeam_ID
    JOIN Team home ON t.ID = gs.HomeTeam_ID

これらの結合では、やりたいことが何でもできます。

于 2012-11-01T19:53:10.923 に答える