我有3个具有以下结构的表:
表用户
ID
名称
点数
表组
ID
名称
group_score
表UsersGroups(关联表)
用户身份
群组编号
我试图为所有组简单地通过添加组内用户的所有点来计算group_score。
我尝试了以下查询
UPDATE `Group` SET group_score = (SELECT SUM(User.points) FROM User
JOIN UsersGroups
ON User.id = UsersGroups.UserId
GROUP BY UsersGroups.GroupId)
这给了我OperationalError(“子查询返回多于1行”)
我究竟做错了什么?
谢谢您的帮助!
最佳答案
UPDATE `Group` JOIN (SELECT GroupId, SUM(User.points) as sumuser FROM User
JOIN UsersGroups
ON User.id = UsersGroups.UserId
GROUP BY UsersGroups.GroupId) x
ON `Group`.Id=x.GroupId
SET group_score =x.sumuser
关于mysql - 使用连接进行更新的MySQL语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25763420/