求教个SQL语句

webphoenix 2006-05-28 11:13:37
有两个表
cate(ID,cateName,detailNum) 分类信息,其中ID为主键,cateName表示名称,detailNum表示 详细信息的数量
detail(ID,cateID,content) 详细信息,其中ID为主键,cateID为外部关系键(cate表)
cate和detail的关系是1:N

示例数据
cate
ID cateName detailNum
1 分类01
2 分类02
3 分类03

detail
ID cateID content
1 1 xxx
2 1 sdadas
3 2 ffff
4 2 ssss
5 2 545454

现要统计出 每个 分类 下的 详细信息 数量

如上面的示例,则结果为
ID detailNum
1 2
2 3
3 0

我想用一句UPDATE语句就实现更新所有,不知各位有什么好的语句,谢谢
...全文
161 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cqq 2006-05-31
  • 打赏
  • 举报
回复
晕菜了,不行?

呵呵
fengyeng 2006-05-29
  • 打赏
  • 举报
回复
看..
losedxyz 2006-05-29
  • 打赏
  • 举报
回复
declare @cate table ([id] int)
insert @cate
select 1 union all
select 2 union all
select 3

declare @detail table ([ID] int, cateID int, content char(10))
insert @detail
select 1, 1, 'xxx' union all
select 2, 1, 'sdadas' union all
select 3, 2, 'ffff' union all
select 4, 2, 'ssss' union all
select 5, 2, '545454'

select a.[id],isnull(b.detailNum,0) as detailNum from @cate a,(select count(1) as detailNum, cateID from @detail group by cateid )b
where a.[id]*=b.cateID
ahcpx 2006-05-28
  • 打赏
  • 举报
回复
不太明白,不过多个表中的用一个UPDATE好像不太可能吧,另外如果是分组统计数据,可以用GROUP BY 字段名
webphoenix 2006-05-28
  • 打赏
  • 举报
回复
CPP 的SQL不行,报错,操作符丢失
slawdan 2006-05-28
  • 打赏
  • 举报
回复
cqq 正解!!
cqq 2006-05-28
  • 打赏
  • 举报
回复
update cate set detailNum=(select count(*) from detail where cateid=a.id) from cate a,detail b

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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