MSSQL多表查询(一个基表,两个附表求和)问题

kkk6041 2008-05-18 01:05:44
三个表:
1.学校表(school):id,schoolname,createdate
2.学生表(student):id,username,schoolid,createdate
3.评论表(comment):id,comment,schoolid,createdate

现在想用一条SQL语句获得如下数据(不用存储过程):
select school.id, school.schoolname, count(student.id) as countstudent, count(comment.id) as countcomment from ... where (or ...on) school.id=student.schoolid and school.id=comment.schoolid

请高手赐教,不胜感谢!
...全文
89 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zarge 2008-05-18
  • 打赏
  • 举报
回复
select id, schoolname, 
( select count(*) from student where schoolid = a.id ) as countstudent,
( select count(*) from comment where schoolid = a.id ) as countcomment
from school a
中国风 2008-05-18
  • 打赏
  • 举报
回复
select a.id, a.schoolname, 
count(b.ID) as '学校数量',
count(c.ID) as '评论数量'
from 学校表 a
left join 学生表 b on a.id=b.schoolid
left join 评论表 c on a.id=c.schoolid
group by a.id, a.schoolname
wzy_love_sly 2008-05-18
  • 打赏
  • 举报
回复
select a.id, a.schoolname, 
sum(case when b.id is not null then 1 else 0 end ) as '学校数量',
sum(case when b.id is not null then 1 else 0 end ) as '评论数量'
from 学校表 a left join 学生表 b on a.id=b.schoolid
left join 评论表 c on a.id=c.schoolid
group by a.id, a.schoolname

22,294

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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