SQL 用exists代替全称量词

学习sql的必经问题。

 

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

课程表Course           (crscode课程号       name课程名)  
学生选课表transcript           (studid学号     crscode课程号       Grade成绩)  
对以上表进行查寻选修了全部课程的学生姓名  

 

--查询选修了所有课程的学生 --不存在这样的课程该学生没有选修 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 ) ) --拿出一个学生,对任何一个课程,查看该学生是否选修了。如果未选修,返回该课程。 --如果选修了,则查看下一个课程。。。。 --最终,如果返回的所有课程为空的话说明该学生选修了所有的课程。此时输出该学生的信息

 

 

终于对这个问题有了深刻一点的认识。

你可能感兴趣的:(SQL 用exists代替全称量词)