MySql update inner join!MySql跨表更新 多表update sql语句?如何将select出来的部分数据update到另一个表里面?

项目中,评论数,关注数等数据,是实时更新的。+1,-1 这种。

有的时候,可能统计不准确。

需要写一个统计工具,更新校准下。


用Java写SQL和函数,代码很清晰,方便扩展,但是太慢了。

为了简单起见,只写sql来统计,然后更新。(不想写存储过程)

语句如下:

#更新一个人的 关注数 followingCount

update behavior_redman_count a
inner join
(
select memberId,count(*) as followingCount from behavior_follow where type = 10
and isDelete=0 group by memberId 
)b 
set a.followingCount =b.followingCount
where a.redmanId = b.memberId;




#MySQL不支持这种语法
update behavior_redman_count
set followingCount = b.followingCount
from
(
select count(*) as followingCount from behavior_follow where type = 10 and memberId = 198
and isDelete=0
)b 
where redmandId = a.memberId and a.memberId= 198;



参考资料

1. Mysql跨表更新 多表update sql语句总结

http://www.jb51.net/article/32648.htm


2.如何将select出来的部分数据update到另一个表里面?

http://bbs.csdn.net/topics/320233666

你可能感兴趣的:(mysql,多表更新)