SQL中除法的结构为
not exists(
a
not exists(
a
)
)
比如选出所有选过所有课程学生的学号,代码如下:
(sc表中有学生的选课记录,course表中有课程号)
select distinctsno from sc t1 where not exists
(
select cno from course t2 where not exists
(
select * from sc t3 where t3.sno=t1.sno and t3.cno=t2.cno
)
)
1)相当于两个for循环,外层循环就是遍历所有学生,里层循环就是对每一位学生遍历所有课程
2)最里面的那一个select语句便是选出该学生选过的课程,那么not exists语句便是从课程表course中选出该学生没选过的课。
3)外层where exists用于从sc表里选出有没选过课的学生,那么not exists便是选出选过所有课程的学生
版权声明:本文为yuanren201原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。