sql除法使用不存在

问题描述 投票:1回答:2

我试图用我的头脑去理解使用NOT EXISTS的师的工作。我知道如何使用非Exist编写SQL查询。但不知何故,我不知道如何对此类查询进行评估。任何解释和帮助将不胜感激。

我的查询是:给出所有课程注册的学生的姓名。

student

SID SName
S1 Amy
S2 Tracy

course

CID coursename
C1  computer
C2  Biology

enrolled表。密钥是SID和CID

SID  CID
S1   C1
S1   C2
S2   C1

我的SQL查询如下:

SELECT s.SName
FROM student s
WHERE NOT EXISTS
(SELECT CID from course c
WHERE NOT EXISTS
(SELECT S.SID 
FROM enrolled E
WHERE S.SID=E.SID AND
C.CID=E.CID));

我的理解是:

对于S1:内部查询将首先获取 - C1并检查S1是否在C1中注册。在我们的例子中。他是。它将返回false - 然后它将检查C2并再次返回false。

是这样吗?我现在很困惑。

sql division
2个回答
© www.soinside.com 2019 - 2024. All rights reserved.