如何用另一个表的查询结果来更新表中的字段?

aleung 2001-11-09 12:37:58
举个例子:一群人,分成多个小组, 用两个表来存放数据
group表: GroupID,members(小组人数),GroupName,Description......(其他信息)
people表:ID,GroupID,name ......
现在希望根据people表来更新group表的members字段,统计每个小组的人数。
用sql怎么实现?

如果是select可以用 select GroupID,count(*) from people group by GroupID
但现在是要update到group表。
...全文
203 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
KingSunSha 2001-11-09
  • 打赏
  • 举报
回复
UPDATE TBL_GROUP X
SET MEMBERS = (SELECT COUNT(*)
FROM MEMBERS Y
WHERE Y.GROUPID = X.GRUOPID);
请注意不要用GROUP来做表名,这是SQL的保留字
aleung 2001-11-09
  • 打赏
  • 举报
回复
谢谢,可是在oracle里面好像不支持from的语法?
zhhp6489 2001-11-09
  • 打赏
  • 举报
回复
update group set members = b.members
from group a inner join (select groupid,count(*) members from people group by groupid) b on a.groupid = b.groupid

34,872

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧