根据查询结果在列中添加值
Adding values in a column based on a query result
我有一个table:---
id
name
dept
1
Alice
CS
2
Bob
Elect
3
David
Mech.
及查询结果:-
id
count
1
100
2
22
3
50
然后我想将查询中的计数列添加到我原来的 table,例如:-
id
name
dept
count
1
Alice
CSE
100
2
Bob
Elect
22
3
David
Mech.
50
我唯一想做的就是将查询结果存储到一个新的 table 中,然后使用 UPDATE...SET...WHERE。有什么办法可以不创建新的 table?
首先您需要使用
在tablename
中创建计数列
ALTER TABLE `tablename` ADD COLUMN `nr_count` INT;
然后使用:
update tablename t
inner join ( SELECT id,
count(*) as nr_count
FROM tablename
GROUP BY id
) as t1
set t.nr_count=t1.nr_count ;
我有一个table:---
id | name | dept |
---|---|---|
1 | Alice | CS |
2 | Bob | Elect |
3 | David | Mech. |
及查询结果:-
id | count |
---|---|
1 | 100 |
2 | 22 |
3 | 50 |
然后我想将查询中的计数列添加到我原来的 table,例如:-
id | name | dept | count |
---|---|---|---|
1 | Alice | CSE | 100 |
2 | Bob | Elect | 22 |
3 | David | Mech. | 50 |
我唯一想做的就是将查询结果存储到一个新的 table 中,然后使用 UPDATE...SET...WHERE。有什么办法可以不创建新的 table?
首先您需要使用
在tablename
中创建计数列
ALTER TABLE `tablename` ADD COLUMN `nr_count` INT;
然后使用:
update tablename t
inner join ( SELECT id,
count(*) as nr_count
FROM tablename
GROUP BY id
) as t1
set t.nr_count=t1.nr_count ;