【发布时间】:2021-04-21 22:33:01
【问题描述】:
我目前在使用 MYSQL 查询时遇到问题。我搜索了许多 stackoverflow 问题以寻找答案,但找不到答案。
问题: 我有两张桌子-
teams = |id(主键)|name|sigma|mu|
排名 = |match_id|team_id|mu|sigma|
teams 表包含 team_id、name 以及 sigma 和 mu(稍后会详细介绍)。 team.id 还可以作为队伍中 team_id 的外键。 Ranks 包含比赛 id 和球队 id 以及 mu 和 sigma。
基本上,我想为每个团队 id 找到最大的匹配 id,并将相应的 mu 和 sigma(来自排名表)分配给团队表中的正确团队。换句话说,我希望 team 表中的每个团队都有对应于最大 match_id 的 sigma 和 mu 值。
我尝试了下面的MYSQL命令:
-- these will serve as the basis for the procdures which update the teams...
SELECT
MAX(ranks.match_id) as max_match,
ranks.team_id as team_id,
teams.id,
teams.name,
ranks.match_id,
ranks.team_id,
FROM
ranks
JOIN teams ON teams.id = team_id
UPDATE
teams
SET
teams.mu = ranks.mu, teams.sigma = ranks.sigma
WHERE
max_match = ranks.match_id
AND team_id = ranks.team_id
这样做我得到一个错误。提前感谢您的帮助。
另外我担心我无法做到这一点可能是由于我对 MYSQL 的理解存在重大错误,所以任何帮助解释我出错的地方都将不胜感激。
【问题讨论】:
-
将示例表数据添加到您的问题中会更容易理解。
标签: mysql sql greatest-n-per-group