データベースのビューを再構築しようとしています。これは、構築中のホッケー統計アプリケーション用です。
私の状況は次のとおりです。私はプレーを記録するためのデータを記録しています。それぞれIndividualScoreHockey
に TeamId
と がありGameId
ます。このデータを使用してMatchFixture
テーブルに移動し、 を使用しGameId
て、ゲームでプレーしている 2 つのチームを特定できます。
したがって、私の見解では、AllScoringPlays
というタイトルのコラムを作成したいと考えていOpponentId
ます。したがって、 fromを使用してテーブルをクエリし、またはがfromと等しくなく、 (ISH)が(MF)と等しい場所を比較する必要があると思いますTeamId
Goal
MatchFixture
TeamId
IndividualScoreHockey
HomeTeamId
AwayTeamId
TeamId
IndividualScoreHockey
GameId
Id
これを実行するサブクエリを作成する方法がわかりません。次のようなものになると思います。
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 です)
私はビューに本当に慣れていないので、このサブクエリを実行する場所がわかりません。または、結合で逃げることができるかもしれませんが、わかりません。どんな助けでも大歓迎です。ここで何かをつぶした場合は、お気軽にコメントしてください。より適切に説明できるように努めます。