怎么查询至少选修了 某个学生选修的所有课程
表结构如下:表名 SC
学号(sno) 选修的课程号(cno)
111 1
111 2
111 3
112 1
112 2
如何查询至少选修了 112学生选修的所有课程 的学生 ,真心求解 是不是老师布置的作业呢?
select distinct sno from sc scx
where not exists
(select 1 from sc scy
where scy.sno='112' and
not exists
(select 1 from sc scz
where scz.sno=scx.sno and
scz.sno=scy.sno));
[解决办法]
select t.sno
from sc t
where t.cno >= all (select m.cno from sc m where m.sno = '112')
and t.sno <> '112'
一定是学生啦,大学的数据库书上就这么一个例子~~
[解决办法]
select sno from sc where sc.cno in(select cno from sc where sno = '112');