您的位置:首页 > 数据库

[SQL学习笔记][用exists代替全称量词 ]

2016-04-11 15:41 288 查看

学习sql的必经问题。

学生表student (id学号 Sname姓名 Sdept所在系)

课程表Course (crscode课程号 name课程名)

学生选课表transcript (studid学号 crscode课程号 Grade成绩)

Question: 对以上表进行查寻选修了全部课程的学生姓名

--查询选修了所有课程的学生
--不存在这样的课程该学生没有选修


select *
from student s
where not exists
(
select *
from course c
where not exists
(
select *
from transcript t
where s.id = t.studid and c.crscode = t.crscode
)
)


--拿出一个学生,对任何一个课程,查看该学生是否选修了。如果未选修,返回该课程。
--如果选修了,则查看下一个课程。。。。
--最终,如果返回的所有课程为空的话说明该学生选修了所有的课程。此时输出该学生的信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: