举杯邀月

Mysql查询语句-更新的值为另一个表的结果值

摘要:mysql的正常更新我们可能很熟悉,但是如何将另一个表的结果更新到当前的当前的值呢?今天再项目中遇到了这个,也顺便记录下

我们两个表结构为:

a表:

id(班级ID) number(班级人数)
1 0
2 0

b表:

id(班级ID) number(班级人数) type(1->男生 2->女生)
1 2 1
1 1 2
2 2 1
2 1 2

比如我们现在有个需求,将b表的人数导入到a表中,但是a表要的是总人数,b表里是an性别分开的人数,介于sql执行:

UPDATE a,
 (
	SELECT
		b.id,
		sum(number) AS number feom b
	GROUP BY
		id
)
SET a.number = b.number
WHERE a.id = b.id
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10

这只是一个例子,提供一个思路!

作者:举杯邀月

出处: http://www.hug-code.cn/archives/5fc0b203cc985.html

2020-04-08 标签: mysql