我可能忽略了一些非常明显的内容,但无法运行多个UPDATE
语句。我要实现的是根据另一个表中的值将SELECT
从表中的AVG()
和UPDATE
列。
我遵循以下解决方案,但无法使其运行:
我的解决方案:
UPDATE
teams
SET
teams.overall_rank = q.rank_avg
FROM
(
SELECT
team_id as t_id,
AVG(rank) as rank_avg
FROM
team_list
WHERE
rank NOT IN (0, -1)
GROUP BY
team_id
ORDER BY
rank_avg
) q
WHERE
q.t_id = teams.team_id
错误信息:
You have an error in your SQL syntax; it seems the error is around: 'FROM ( SELECT team_id as t_id, AVG(rank) as rank_avg FR' at line 5
我正在使用MySQL。我在这里想念什么?
分析解答
请尝试以下-您的语法对mysql无效
UPDATE teams
join
(
SELECT
team_id as t_id,AVG(rank) as rank_avg
FROM team_list
WHERE rank NOT IN (0, -1)
GROUP BY team_id
) q on q.t_id = teams.team_id
SET teams.overall_rank = q.rank_avg