1
我有两个表:一个是名称,另一个是通过nameID连接的评级。我想从收视表中的数据中找到平均评分,并将结果填入场地表中的相应场地。我不知道如何继续。关于如何使用MySQL做到这一点的任何指针?MySQL使用其他列的数据填充列的计算平均值
我有两个表:一个是名称,另一个是通过nameID连接的评级。我想从收视表中的数据中找到平均评分,并将结果填入场地表中的相应场地。我不知道如何继续。关于如何使用MySQL做到这一点的任何指针?MySQL使用其他列的数据填充列的计算平均值
这应该可以工作,但是和其他人一样,从等级表中取平均值可能更好,而不是用触发器更新地点表。因此,这创建了一个程序来更新从两个触发器中调用的场所的平均评级,以便在评级表上插入和更新。
DELIMITER //
CREATE PROCEDURE updateVenueRating(IN venue_id INT)
READS SQL DATA
BEGIN
update venue AS v
SET v.avgrating =
(select avg(rating)
from ratingtable
where ratingtable.venueid = v.id
)
where v.id = venue_id;
END//
CREATE TRIGGER venue_insert_trigger
AFTER INSERT ON ratingtable
FOR EACH ROW
BEGIN
CALL updateVenueRating(NEW.VenueId);
END//
CREATE TRIGGER venue_update_trigger
AFTER UPDATE ON ratingtable
FOR EACH ROW
BEGIN
CALL updateVenueRating(NEW.VenueId);
END//
DELIMITER ;
您可以先向我们展示您的确切表结构,最好是使用数据。 –
是否有任何理由存储这些数据?您如何计划保持更新的计算平均值?触发器? – Shadow
表1:场地|地址| AvgRating表2:查看|评分| VenueId。审查表中有审查场地的数据。我正在尝试决定如何以及在哪里添加该场地的avgRating。存储数据的原因是能够搜索累积平均值。对于数据来说,这与餐厅的评论类似,并且希望显示所有评论的平均值。 –