首页 > 解决方案 > 如何使用查询结果更新空表

问题描述

我有一个表名平均评分。我想用这个查询的结果更新我的表名最终评级

select spid,AVG(avgRat) from AvgRating group by spid

我怎样才能做到这一点?

看看附上的图片

标签: sqlsql-server

解决方案


INSERT IGNORE INTO FinalRating (select spid,AVG(avgRat) from AvgRating group by spid)

如果您想避免重复,请确保 spid 在另一张表上是唯一的应该可以工作

如果你想更新,你必须按照这些方式加入

UPDATE FinalRating TA 
INNER JOIN (select spid,AVG(avgRate) avg from AvgRating group by spid) as TB 
ON  TA.spid = TB.spid
SET TA.spid=TB.spid, TA.rating=TB.avg

编辑: 现在已经检查了这个并且应该工作得很好,如果行已经存在并且 Finalrating.spid 必须是唯一的,你必须同时运行插入和更新


推荐阅读