• 查询和" 01 "号的同学学习的课程 完全相同的其他同学的信息
  • 分析
    • 如果某同学学的某一个课程和01同学所学的课程有对应,那么子查询返回false。
    • 如果没有对应,子查询返回true。
    • 子查询完毕后,如果子查询为空,说明每一个课程都有对应,那么主查询not exists为true,返回一条记录;
    • 如果子查询非空,说明至少有一个课程没有对应,那么主查询not exists为false,不返回对应学生的信息。
SELECT * FROM Student WHERE SId <>'01' AND NOT EXISTS (
	SELECT * FROM SC as t1 WHERE SId = '01' AND NOT EXISTS (SELECT * FROM SC as t2 WHERE t2.sid = Student.SId AND t1.cid = t2.cid ))

SQL 练习12_IT