gpt4 book ai didi

MySQL:在 View 中选择?

转载 作者:行者123 更新时间:2023-11-29 13:54:53 24 4
gpt4 key购买 nike

我正在尝试为我的数据库重建一个 View ,这是为了我正在构建的曲棍球统计应用程序。

我的情况是这样的:我正在记录得分数据,每个IndividualScoreHockey都有一个TeamIdGameId。有了这些数据,我可以将其转移到 MatchFixture 表,并使用 GameId 找出正在玩游戏的两支球队。

因此,在我的 AllScoringPlays View 中,我想创建一个标题为 OpponentId 的列,该列将为我提供该团队的 TeamId 目标遭到反对。因此,我相信我需要使用 IndividualScoreHockey 中的 TeamId 查询 MatchFixture 表,并比较 HomeTeamIdAwayTeamId 不等于 IndividualScoreHockey 中的 TeamId,并且 GameId (ISH) 等于 Id (MF)

我不确定如何创建一个执行此操作的子查询,我相信它会类似于:

从 MatchFixture 中选择 (HomeTeamId 或 AwayTeamId) AS OpponentId 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_协助|时间

(GoalP_AssistS_Assist 列是归因于该得分比赛的球员的 ID)

我对 View 很陌生,所以我不确定在哪里执行这个子查询。或者也许我可以逃脱加入,我不确定。任何帮助将非常感激。如果我在这里破坏了任何内容,请随时发表评论,我可以尝试更好地解释它。

最佳答案

如果我正确理解您的查询,您可以在 MatchFixture 中找到您想要的 OpponentId 作为 HomeTeamIdAwayTeamId 记录您已作为 MF 加入。然后您只需将其添加到您选择的字段列表中即可获得您想要的结果:

CASE WHEN MF.HomeTeamId = ISH.TeamId THEN MF.AwayTeamId ELSE MF.HomeTeamId
END AS OpponentId

关于MySQL:在 View 中选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16024683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com