2014-05-08 60 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