Xboxの仮想ホッケーリーグの統計追跡Webページに取り組んでいます。私はこれに少し取り組んでおり、ほとんどの作業を行っていますが、特定の情報を表示するときに問題が発生することに気づきました。WHERE基準でも選択するのではなく、私のJOINに一致するテーブルの最初の行を選択しているようです。私がやろうとしているのは、ゲームのボックススコアを表示するページを用意することです。
IE、以下の情報から、ゲーム1は「シカゴのニューヨーク」になり、最終結果はNY-5、CHI-3になります。それはうまくいきます。私が遭遇している問題は、ゲーム3「ニューヨークのシカゴ」を表示するときに、CHI-2NY-4の代わりに同じ統計を表示することです。
私がここで見逃しているものはありますか、それともこれを行うためのより良い方法がありますか?基本的に、JOINで次のことを実行したいと思います。これは、WHERE行で実行していると思っていたものです。
JOIN GameStats GSA ON ((GSA.team_ID = gs.awayTeam_ID) AND (GSA.gameSchedule_ID = '" . $scheduleID . "')
JOIN GameStats GSH ON ((GSH.team_ID = gs.homeTeam_ID) AND (GSH.gameSchedule_ID = '" . $scheduleID . "')
どんな助けでも大歓迎です!
$sql="SELECT
away.name as AWAY_TEAMNAME,
away.ID as AWAY_TEAMID,
home.name as HOME_TEAMNAME,
home.ID as HOME_TEAMID,
gs.ID as GAMEID
GSA.GOALS AS AWAY_GOALS,
GSA.SHOTS AS AWAY_SHOTS
GSH.GOALS AS HOME_GOALS,
GSH.SHOTS AS HOME_SHOTS
FROM
GameSchedule gs
JOIN Team away ON away.ID = gs.awayTeam_ID
JOIN Team home ON home.ID = gs.homeTeam_ID
JOIN GameStats GSA ON GSA.team_ID = gs.awayTeam_ID
JOIN GameStats GSH ON GSH.team_ID = gs.homeTeam_ID
WHERE
gs.ID = " . $scheduleID;
Table: Team
-------------------
| ID | name |
-------------------
| 1 | New York |
| 2 | Chicago |
| 3 | Detroit |
| 4 | Boston |
-------------------
Table: GameStats
--------------------------------------------------
| ID | gameSchedule_ID | team_ID | goals | shots |
--------------------------------------------------
| 1 | 1 | 1 | 5 | 5 |
| 2 | 1 | 2 | 3 | 2 |
| 3 | 2 | 3 | 6 | 1 |
| 4 | 2 | 4 | 1 | 7 |
| 5 | 3 | 2 | 2 | 14 |
| 6 | 3 | 1 | 4 | 7 |
| 7 | 4 | 4 | 5 | 9 |
| 8 | 4 | 3 | 5 | 4 |
-------------------------------------------------
Table: GameSchedule
----------------------------------
| ID | awayTeam_ID | homeTeam_ID |
----------------------------------
| 1 | 1 | 2 |
| 2 | 3 | 4 |
| 3 | 2 | 1 |
| 4 | 4 | 3 |
| 5 | 2 | 4 |
| 6 | 1 | 3 |
----------------------------------