把一个表中的数据count更新到另一个表里?

UPDATE sites left join comments on comments.siteurl=sites.siteurl SET commentcount = count(comments.siteurl)

报错:#1111 - Invalid use of group function

sites是网站表
comments表是评论
一个网站对应多个评论
现在想把评论的数量统计出来直接更新到sites


找到个方法了:

UPDATE sites A 
INNER JOIN (SELECT *, COUNT(*) idcount FROM comments GROUP BY siteurl) as B
  ON B.siteurl = A.siteurl
SET A.commentcount = B.idcount
阅读 5.9k
2 个回答

为何要将count写入site表 那岂不是每次comment表数据更新了你都要那count重新写入site?这样不麻烦吗?如果你只是想统计每个site的评论数。每次查询的时候像你之前那样链表就行了

count是聚合函数,直接这样写是不行的。
你可以先把所有的数量查出来,然后直接在update的时候set commentcount=总数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题