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

学习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
)
)

--拿出一个学生,对任何一个课程,查看该学生是否选修了。如果未选修,返回该课程。
--如果选修了,则查看下一个课程。。。。
--最终,如果返回的所有课程为空的话说明该学生选修了所有的课程。此时输出该学生的信息
上一篇:Unexpected end of JSON input while parsing near


下一篇:黑马毕向东Java基础知识总结