我有两个表:Product 和 Review。我正在尝试创建一个触发器,在插入新评论时更新产品表(列:星号)。它们通过 product_id 连接。我试过这段代码,但我猜它不对。
代码:
create trigger update_stars after insert on Review for each row
update Product
set stars=(select avg(stars) from Review where product_id=Product.product_id)
where product_id=new.product_id;
最佳答案
对于 sql 代码,您可以使用基于内部连接的更新,例如:
update Product p
inner join (
select product_id, avg(stars) avg_stars
from Review
group by product_id
) t on t.product_id = p.product_id
set stars=t.avg_stars
关于mysql - 从另一个表更新平均值的触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49415545/