我正在尝试为我的数据库重建一个视图,这是我正在构建的曲棍球统计应用程序。
我的情况是这样的:我正在记录得分的数据,每个IndividualScoreHockey
都有一个 TeamId
和GameId
。有了这些数据,我可以把它拿到MatchFixture
桌子上,用GameId
来确定哪两支球队正在比赛中。
因此,在我对 的看法中AllScoringPlays
,我想创建一个标题为的专栏OpponentId
,它会告诉我反对TeamId
的团队的成员Goal
。所以我相信我需要使用from查询MatchFixture
表并比较在哪里or不等于from和(ISH) 等于(MF)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 | 日期
IndividualScoreHockey
:
身份证 | 团队 ID | 游戏ID | 目标 | P_Assist | S_辅助 | 时间
(Goal
、P_Assist
和S_Assist
columns 是归因于该得分游戏的玩家的 ID)
我对视图真的很陌生,所以我不确定在哪里执行这个子查询。或者也许我可以加入,我不确定。任何帮助将非常感激。如果我在这里屠杀了任何东西,请随时发表评论,我可以尝试更好地解释它。