SELECT Sname
FROM Student
WHERE NOT EXISTS
(SELECT *
FROM Course
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE Sno= Student.Sno
AND Cno= Course.Cno));
这个东西一直都是一个难点,我来解释一下:
最里一层:选出选了的“学生+课”
中间一层:选出“没选的课”
最外一层:选出没有选“没选的课”的学生,也就是全部选修的学生
本文解析了一个复杂的SQL查询,它通过三层嵌套结构找出所有已选全部课程的学生。最内层选择学生和课程组合,中间层筛选未选过的课程,最外层确保学生没有选修这些未选课程。
1万+





