标签:sql sts 查询 cno distinct span exist and 条件
查询选修了全部课程的学生姓名。
\(\Longrightarrow\) 对与满足条件的学生,应该是:不存在一门课程他没有选而课表中存在。
SELECT Sname
FROM Student
WHERE NOT EXISTS(
SELECT *
FROM Course
WHERE NOT EXISTS(
SELECT *
FROM SC
WHERE Sno=Student.Sno
AND Cno=Course.Cno
)
)
两层的嵌套查询,可以类比于两层的 ‘for‘ 循环,第一层为学生,第二层为课程,循环里面是去判断。
查询至少选修了学生201215122选修的全部课程的学生的学号。
\(\Longrightarrow\) 不存在这样的课程,学生201215122选修了,而当前学生没有。
SELECT DISTINCT Sno
FROM SC SCX
WHERE NOT EXISTS(
SELECT *
FROM SC SCY
WHERE SCY.Sno=‘201215122‘
AND NOT EXISTS(
SELECT *
FROM SC SCZ
WHERE SCZ.Sno=SCX.Sno
AND SCZ.Cno=SCY.Cno
)
)
EXISTS/NOT EXISTS实现全称量词的查询(双重否定)
标签:sql sts 查询 cno distinct span exist and 条件
原文地址:https://www.cnblogs.com/whix/p/13178132.html