2014-05-08 66 views
1

使用MYSQL从另一个表中更新avg()?

我必须为表格Movies创建一个平均字段以保存每部电影的平均分数。实际分数保存在表格评级中,该评级是在mid(电影ID)中引用电影。您将如何使用评分中列“评分”中的平均值更新电影中的每一行?

我试过连接,但它们似乎不适用于MySQL。有什么建议么?先谢谢你!

回答

1

您可以用updatejoin做到这一点:

update movies m join 
     (select mid, avg(score) as avgscore 
     from ratings r 
     group by mid 
     ) r 
     on m.mid = r.mid 
    set m.avgscore = r.avgscore; 

当然,这只会一次更新值。如果您想保持平均值为最新,那么您需要创建一个触发器来重新设置值。

+0

您的解决方案在MySQL中完美运行!非常感谢你! – Wolftacular