请教多表查询的问题,谢谢!!
学生表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