触发或事件以从另一个表获取平均值

时间:2018-11-03 18:50:39

标签: mysql sql select average

ratings_table
-------------------------
id(PK)  color(FK)  rating
=========================
1       green      5  
2       green      2
3       blue       4
4       yellow     4
5       blue       3

colors_table:
---------------------
color(PK)  avg_rating
=====================
green      ?  
blue       ?
yellow     ?

如何设置每种颜色的平均等级?当新数据插入rating_table或更新记录时,我想自动更改它。

我想这很容易,但是我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

最简单的方法是将colors_table作为视图而不是需要使用触发器的表:

CREATE VIEW colors AS
SELECT   color, AVG(rating)
FROM     ratings_table
GROUP BY color