这个带双重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的网友帮忙给最详细的解答,谢谢各位先了~~
------解决方案--------------------负负得正嘛
------解决方案--------------------这样速度不行啊,是多做循环了!