簡體   English   中英

where not clause子句sql

[英]where not exists clause sql

所以我試圖列出至少在一個班級但不屬於一個班級的學生。 我的代碼顯示0結果,但應該有兩個。 我的where子句出了點問題。 我可以讓它向學生展示參加一個或多個課程,但是不能讓它顯示那些也不屬於任何一個團體的學生。 我的where子句有問題。 我有3個相關的表。 持有學生姓名和身份證的學生,持有學生證和團體證的會員,以及持有團體ID的學生團體。

碼:

select student.lastname
from student inner join enrolled on enrolled.studentid = student.sid
where not exists(
select *
from studentgroup inner join memberof on memberof.groupid = studentgroup.gid 
)

如果你將where子句where not exists的地方改為where not existswhere not in辦? 就像是

where student.id not in (select distinct student_id from member_of)

您沒有任何條件說明學生將如何與學生群體聯系。 因此, EXISTS始終返回true,但是您希望看到EXISTS返回false的行。

您可以在子查詢中添加WHERE以將學生與組關聯。

SELECT student.lastname
FROM student INNER JOIN enrolled ON enrolled.studentid = student.sid
WHERE NOT exists(
SELECT *
FROM studentgroup INNER JOIN memberof ON memberof.groupid = studentgroup.gid
WHERE student.sid = memberof.studentid
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM