文章详情页
mysql - 把一个表中的数据count更新到另一个表里?
浏览:201日期:2022-06-20 16:43:37
问题描述
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.siteurlSET A.commentcount = B.idcount
问题解答
回答1:为何要将count写入site表 那岂不是每次comment表数据更新了你都要那count重新写入site?这样不麻烦吗?如果你只是想统计每个site的评论数。每次查询的时候像你之前那样链表就行了
回答2:count是聚合函数,直接这样写是不行的。你可以先把所有的数量查出来,然后直接在update的时候set commentcount=总数
上一条:mysql多表查询的问题下一条:mysql优化 - 关于mysql分区
相关文章:
1. python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)2. MYSQL新建用户设置可以远程访问的问题3. $fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题4. java - mybatis怎么实现在数据库中有就修改,没有就添加5. node.js - nodejs和前端JavaScript 字符串处理结果不一样是什么原因?6. mysql多表联合查询优化的问题7. MySQL中的enum类型有什么优点?8. 数据库 - mysql 远程可以连接,但是本地连接拒绝?9. 数据库设计 - MySQL数据库主键问题10. linux - 为什么我在mysql的my.cnf下找不到bind-address?
排行榜
![$fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题](http://www.haobala.com/attached/image/news/202205/093622cb60.png)