根据查询结果在列中添加值

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 ;