首页 > 代码库 > sql测试

sql测试

设有“学生Student(sID,sName)”,“课程Course(cID,cName)”,“选课StudentCourse(scID,sID,cID)”这三个表。一个学生可以选修0..n门课,
一门课也可以被0..n个学生选修。请用一条SQL语句找出选修了所有课程的学生姓名。

解:一个学生选择了全部课程说明不存在一个课程他是没有选的
Select sName from Student where not exists //不存在没选的课程号,说明找出选修了所有的课程的学生的姓名
(select * from Course where not exists // 找到学生没选的课程课程号
(select * from StudentCourse where Sid=Student.sID and cID=StudentCourse.cID ) ) //找出学生已经选出来的课程的课程号

sql测试