mysql数据库,sql语句,把一个表中的统计数量,更新到两一个表中

比如有两个表,一个是A表,一个是B表。
A表字段:cid (cid有重复)
B表字段:cid,cnum (cid无重复)

统计SQL:SELECT cid,COUNT(*) FROM comment GROUP BY cid

结果是:
1 6
2 3
3 3
4 9
5 4

问题是:结合A表和B表统计A表中cid的数量,把右边的结果更新到B表cnum中。
已解决。update语句后面不可以跟 from 的

update b set b.cnum = (select c.counts from
(SELECT cid,COUNT(*) counts FROM comment GROUP BY cid) c
where a.cid=c.cid);

哎,禁不住说一声,苦逼程序员啊,都这么晚不睡

你试试吧,按照你描述的,我这么写应该就通过了,有问题直接hi追问

你也很晚还在,那个c是什么?

追答

c是SELECT cid,COUNT(*) counts FROM comment GROUP BY cid这一串的结果集,起了个别名叫c,其实你可以理解为一个临时表,将来要调用这里边的数

是不这么说不太好理解啊?
这样
select b.counts from
(select id,count(*) counts from 表a) b
where b.counts=2

这么看一目了然了吧,那个c跟这个一个性质

追问

好吧 知道了

追答

先睡了,希望这问题别被推荐,要不又接不上了

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-05
Update B
set B.cnum = A.Total
From B
INNER JOIN (SELECT cid,COUNT(*) AS Total FROM A GROUP BY cid) A
ON B.cid =A.cid
第2个回答  2013-03-07
update b
set b.cnum = a.cnum
From (select cid,count(*) AS cnum from a group by cid) a
where b.cid =a.cid

不知道就说不知道的。还不能跟from。无知真可怕,lz回家吃奶吧

mysql数据库,sql语句,把一个表中的统计数量,更新到两一个表中
update b set b.cnum = (select c.counts from (SELECT cid,COUNT(*) counts FROM comment GROUP BY cid) c where a.cid=c.cid);哎,禁不住说一声,苦逼程序员啊,都这么晚不睡 你试试吧,按照你描述的,我这么写应该就通过了,有问题直接hi ...

mysql 查询语言 一张表的数据插入另一张表的sql语句
1 FROM TUserMstWHERE `Status`=0 ANDQuitFlg=0 ANDUserId>2

如何用在MySQL中用sql语句将表1的内容统计成表2
可以看到 MySQL 在这里非常机智,直接执行了一个内置的存储过程来更新统计表。沿着 que_eval_sql,可以找到其他类似的统计表,比如下面这些:请点击输入图片描述 请点击输入图片描述 本次实验中,我们借助了 MySQL 的 DBUG 包,来让 MySQL 将处理过程暴露出来。MySQL 中类似的技术还有不少,比如 performa...

MYSQL数据库update select 把一个表中的数据改为另一个表中的数据,怎么...
1、update b,a set num3=a.num1-a.num2where b.name1=a.name2。2、UPDATE 表A SET name=(SELECT id FROM 表B WHERE 表B.name=表A.name)。3、有两个表,table1,table2 , table1 是table2的父表,两个表组合起来形成记录,现在Table2有四条记录,经过SQL语句查询,这四条...

Mysql 怎样将一个数据库中表 数据 插入到 另一个数据库 表中
1.如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:insert into insertTest select*from insertTest2;2.如果只希望导入指定字段,可以用这种方法:insert into insertTest2(id) select id from insertTest2;

mysql中,如何用一条SQL将一张表里的数据插入到另一张表?
选择导入数据EXCEL表内容范围,若有几个SHEET表,或一个SHEET表中有些数据我们不想导入,则可以编写查询指定的数据进行导入。点击下一步。8\/12 选择我们需要导入的SHEET表,比如我在这里将SHEET表名改为price,则导入后生面的SQL数据库表为price$。点击进入下一步。9\/12 点击进入下一步。10\/12 在...

MySQL中如何把一个数据库中的表数据,导到另一个数据库的表中
就是和数据库表名对应的.frm.myd.myi文件)拷到导入方(注意一个表有三个文件),然后改一下数据表文件名成你要导入的表名,然后启动mysql服务 ,如果导入方原来的表有数据,可以把原来的数据用正常方式导出,然后在工具里面导入合并就可以了,再有一个可行的方法就是自写代码一行一行的转移数据了 ...

mysql 如何把查询到的结果插入到另一个表中
类别一、 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法:INSERT INTO 目标表 SELECT * FROM 来源表 ;例如,要将 articles 表插入到 newArticles 表中,则可以通过如下SQL语句实现:INSERT INTO newArticles SELECT * FROM articles ;类别二、 如果只...

UPDATE语句:将一个表里的字段更新到另一个表的字段里的语句
UPDATE语句是SQL中一种强大的工具,允许我们更新数据库中的数据。在某些场景下,我们可能需要将一个表中的字段更新为另一个表的对应字段。例如,在一个成绩查询系统中,可能需要修改一张表,增加一个字段,然后将另一个表的特定ID复制过来。此时,编写循环处理可能并不高效,使用SQL语句则更为简便。考虑...

mysql怎么才能把一个表中同一字段的全部数据读到另一个表中,感觉应该用...
1,可以为这些数据做标识,在 列如添加1个新字段: biaoshi,varchar(20) ,允许为空。把你的需要用的数据,都做上标识 列如:biaoshi='1' 随便设个 然后,提取数据, select id,name from 表名,表名,表名,where biaoshi='1';也就是对你提取的数据设1个新的条件,便于提取。方法2,如果你...

相似回答