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

比如有两个表,一个是A表,一个是B表。A表字段:cid(cid有重复)B表字段:cid,cnum(cid无重复)统计SQL:SELECTcid,COUNT(*)FROMc... 比如有两个表,一个是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 的
展开
 我来答
badkano
推荐于2017-09-06 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885371
团长

向TA提问 私信TA
展开全部
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跟这个一个性质
wyh7954
2013-03-05 · 超过33用户采纳过TA的回答
知道答主
回答量:153
采纳率:50%
帮助的人:47.3万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Daniel_bad
2013-03-07 · TA获得超过635个赞
知道小有建树答主
回答量:382
采纳率:100%
帮助的人:217万
展开全部
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回家吃奶吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式