怎么理解选修了全部课程的学生的学号和姓名的SQL语句

来源:百度知道 编辑:UC知道 时间:2024/09/21 06:57:43
查询选修了全部课程的学生姓名。
SELECT Sname
FROM Student
WHERE NOT EXISTS
(SELECT *
FROM Course
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE Sno= Student.Sno
AND Cno= Course.Cno);
怎么理解啊,请说的详细点,谢谢!

一个学生选择了全部的课程=不存在一个课程他没有选择
从句SELECT * FROM Course WHERE NOT EXISTS (SELECT * FROM SC
WHERE Sno= Student.Sno AND Cno= Course.Cno)如果无法理解
换成 SELECT * FROM Course where Cno not in (SELECT Cno FROM SC where Sno= Student.Sno) 这是找出Student的某个学生没有选择的课程

这语句能执行吗??同样等待高手解释,学习