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。存儲數據的原因是能夠搜索累積平均值。對於數據來說,這與餐廳的評論類似,並且希望顯示所有評論的平均值。 –