用另一个表中的average()更新?

时间:2014-05-08 03:25:51

标签: mysql sql sql-update

使用MYSQL

我必须为表格创建平均字段以保存每部电影的平均分数。实际分数保存在表格评级中,该表格参考电影中期(电影ID)。您如何更新电影中的每一行,并使用“评分”栏中的“得分”列中找到的平均值?

我尝试了JOINS,但它们似乎不适用于MySQL。有什么建议?提前谢谢!

1 个答案:

答案 0 :(得分: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;

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