我有SQL更新查询问题。我希望能够使用针对另一个表的查询结果更新一个表。这是一个简单的例子来展示我想做的事情。
我有两张桌子:
TABLE1
ID COUNT
1 0
2 0
3 0
Table2
ID
1
1
1
2
select id,count(*) from table2 group by id;
ID COUNT
1 3
2 1
我可以使用以下语法一次更新一行:
update table1 set count=(select count(*) from table2 where id=1 group by id) where id=1;
我想要的是能够用一个单独的sql语句更新所有行,以便结果如下:
TABLE1
ID COUNT
1 3
2 1
3 0
有什么想法吗?
答案 0 :(得分:5)
我认为这可能适合你:
update table1
set count=
(select count(*)
from table2
where table2.id=table1.id)
答案 1 :(得分:-2)
如果您使用的是SQL Server,我会尝试使用游标http://msdn.microsoft.com/en-us/library/ms180169.aspx