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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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跟这个一个性质

追问

好吧 知道了

追答

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

参考技术A 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
参考技术B 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 DML 和 DDL
可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。

查询和更新指令构成了 SQL 的 DML 部分:

SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

SQL 中最重要的 DDL 语句:

CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引

1、创建数据库

技术图片
技术图片

2、创建表,选中表,右键,新建表

技术图片
技术图片

3、表修改增加、删除和修改

技术图片

4、查询数据:双击某个数据库,然后选择查询,右键,新建一个查询,然后就可以在里面编辑查询语句了,保存好这个查询,以后可以直接使用。

技术图片















以上是关于mysql数据库,sql语句,把一个表中的统计数量,更新到两一个表中的主要内容,如果未能解决你的问题,请参考以下文章

SQL的一些查询语句

怎样用mysql语句 查询一个表里面的一个字段下的2条数据。求大神指教!

mysql查询数值不在表中的sql语句

sql语句 如何将一个表中的多条数据显示在一行呢???

统计mysql数据库中数据表/字段等数量的sql

mysql查询表中数据总条数的语句怎么写