如何更新作为 MySQL 中另一个表的聚合结果的字段?
Posted
技术标签:
【中文标题】如何更新作为 MySQL 中另一个表的聚合结果的字段?【英文标题】:How to update fields that is the aggregate result of another table in MySQL? 【发布时间】:2011-08-10 18:13:10 【问题描述】:UPDATE a JOIN b ON a.app_id=b.app_id GROUP BY a.app_id SET
remark_avg=AVG(b.score),remark_count=COUNT(b.id);
上面基本上是我想做的,但是不是有效的mysql语句,如何正确写?
【问题讨论】:
【参考方案1】: UPDATE a
INNER JOIN (SELECT AVG(b.score) avg_score,
COUNT(b.id) cnt_id,
b.app_id
FROM b
GROUP BY b.app_id) x ON x.app_id = a.app_id
SET remark_avg = x.avg_score,
remark_count = x.cnt_id;
【讨论】:
这个答案中的“x”等于什么? @alexk:实际上这是我错过的嵌套查询别名,现在已修复以上是关于如何更新作为 MySQL 中另一个表的聚合结果的字段?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 DEFINE 变量设置为等于 PL/SQL 中另一个已定义表的选择
如何将DEFINE变量设置为等于PL / SQL中另一个已定义表的选择