日期:2014-05-19  浏览次数:20563 次

这个带双重NOT EXISTS 的SQL语句如何理解?
题目:
查询至少选修了学生95002选修的全部课程的学生号码。
查询语句如下:
select   distinct   sno
from   sc   scx
where   not   exists
(   select   *
from   sc   scy
where   scy.sno= '95002 '   and
not   exists  
(   select   *
from   sc   scz
where   scz.sno=scx.sno   and
scz.cno=scy.cno
)
);

我感觉它似乎像程序里面的多重循环一样,外循环一次到内循环时全部循环完成再到外循环加1然后再到内循环全部循环完,但具体是怎么一回事,还请各位CSDN的网友帮忙给最详细的解答,谢谢各位先了~~

------解决方案--------------------
负负得正嘛
------解决方案--------------------
这样速度不行啊,是多做循环了!