读书人

请问多表查询的有关问题多谢!

发布时间: 2012-01-10 21:26:50 作者: rapoo

请教多表查询的问题,谢谢!!
学生表Student 包含以下几个字段
(Sno , Sname , Ssex , Sage , Sdept)
学号 姓名 性别 年龄 所在系

课程表Course
(Cno , Cname , Cpno , Ccredit )
课程号 课程名 选修课号 学分

学生选课表Sc
(Sno , Cno , Grade )
学号 课程号 成绩

要求查询选修了全部课程的学生姓名

[解决办法]
select sname from student
where sno in (
select sno from sc
group by sno
having count(*) =
( select count(*) from course)
)
[解决办法]
楼上的朋友用了嵌套,用一个jion吧,看起来比较繁琐了,呵呵

select a.* from Student as a
join (
select distinct Sno from Sc
group by Sno
having count(distinct Cno) = (
select count(*) from Course
)
) as b on a.Sno = b.Sno

读书人网 >SQL Server

热点推荐