データベースのビューを再構築しようとしています。これは、構築中のホッケー統計アプリケーション用です。
私の状況は次のとおりです。私はプレーを記録するためのデータを記録しています。それぞれIndividualScoreHockeyに TeamIdと がありGameIdます。このデータを使用してMatchFixtureテーブルに移動し、 を使用しGameIdて、ゲームでプレーしている 2 つのチームを特定できます。
したがって、私の見解では、AllScoringPlaysというタイトルのコラムを作成したいと考えていOpponentIdます。したがって、 fromを使用してテーブルをクエリし、またはがfromと等しくなく、 (ISH)が(MF)と等しい場所を比較する必要があると思いますTeamIdGoalMatchFixtureTeamIdIndividualScoreHockeyHomeTeamIdAwayTeamIdTeamIdIndividualScoreHockeyGameIdId
これを実行するサブクエリを作成する方法がわかりません。次のようなものになると思います。
SELECT (HomeTeamId OR AwayTeamId) AS OpponentId FROM MatchFixture WHERE Id = foo AND (HomeTeamId != bar OR AwayTeamId != bar)
現在、私のビューは次のようになっています。
CREATE VIEW `AllScoringPlays` AS
SELECT
`ISH`.`GameId` AS `GameId`,
`ISH`.`TeamId` AS `TeamId`,
`MF`.`SeasonId` AS `SeasonId`,
`ISH`.`Goal` AS `GoalId`,
`ISH`.`P_Assist` AS `P_AssistId`,
`ISH`.`S_Assist` AS `S_AssistId`,
`ISH`.`Time` AS `Time`,
FROM
(((((`IndividualScoreHockey` `ISH`
join `User` `UG` ON ((`ISH`.`Goal` = `UG`.`Id`)))
join `Team` `T` ON ((`T`.`Id` = `ISH`.`TeamId`)))
join `MatchFixture` `MF` ON ((`ISH`.`GameId` = `MF`.`Id`)))
left join `User` `UPA` ON ((`ISH`.`P_Assist` = `UPA`.`Id`)))
left join `User` `USA` ON ((`ISH`.`S_Assist` = `USA`.`Id`)))
ORDER BY `ISH`.`Period` , `ISH`.`Time`
これは、私が操作しなければならないデータの大まかな図です
MatchFixture:
ID | シーズン ID | リーグ ID | ホームチーム ID | 離れたチーム ID | 日にち
IndividualScoreHockey:
ID | チーム ID | ゲーム ID | ゴール | P_アシスト | S_アシスト | 時間
( Goal、P_Assist、およびS_Assist列は、その得点プレーに起因するプレーヤーの ID です)
私はビューに本当に慣れていないので、このサブクエリを実行する場所がわかりません。または、結合で逃げることができるかもしれませんが、わかりません。どんな助けでも大歓迎です。ここで何かをつぶした場合は、お気軽にコメントしてください。より適切に説明できるように努めます。