NOT EXISTS 在 SQL 中究竟是如何工作的?

How exactly does NOT EXISTS work in SQL?

我用谷歌搜索并查看了示例,但找不到可以明确解释其工作原理的示例。

所以我在看这个例子。

这里有如下关系

下面列出了所有学生注册的课程。

Select 
    code, title
From 
    course c
Where 
    not exists (Select ssn from student s
                where not exists (select ssn from registered r
                                  where c.code = r.code and s.ssn = r.ssn ));

那么这个例子实际上是如何工作的呢?我们是从外部还是内部开始?我真的很困惑不存在的部分是如何工作的。我的意思是我理解 returns 如果返回一个空集则为真,如果返回一个值则为假。但我只需要有人为我彻底解释一个例子。 (比如这个)。

非常感谢!

基本上从内到外执行都是子查询

    Select code, title From course c Where not exists (
 Select ssn from student s where not exists (
select ssn from registered r where c.code = r.code and s.ssn =r.ssn ));

根据您的查询,它解释说 return 我是课程 table 的标题和代码,如果学生 table 中有记录,而注册 [=18] 中没有学生记录=]

希望你明白