[英]MySQL populate column with calculated average from data of other column
我有兩個表:一個是名稱,另一個是通過nameID連接的等級。 我想從評分表中的數據中找到評分的平均值,然后將結果填充到場地表中的相應場地。 我不知道該怎么辦。 關於如何使用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 ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.