SQL查询:查找未选修特定课程的学生
数据查询思路: 要查找未选修'C语言'和'数据库'课程的学生的学号和姓名,我们需要从学生表S中获取所有学生的学号和姓名,并排除掉选修了这两门课程的学生。
SQL查询语句:
SELECT Sno, Sname
FROM S
WHERE Sno NOT IN (
SELECT Sno
FROM SC
WHERE Cno IN (
SELECT Cno
FROM C
WHERE Cname IN ('C语言', '数据库')
)
);
在这个SQL查询语句中,我们使用了多层嵌套的子查询。最内层的子查询(SELECT Cno FROM C WHERE Cname IN ('C语言', '数据库')) 获取了课程名为'C语言'和'数据库'的课程号。然后,外层的子查询(SELECT Sno FROM SC WHERE Cno IN (子查询)) 获取了选修了这两门课程的学生的学号。最后,主查询(SELECT Sno, Sname FROM S WHERE Sno NOT IN (子查询)) 排除了选修了这两门课程的学生,返回了未选修这两门课程的学生的学号和姓名。
请注意,上述SQL查询语句是基于给出的表结构进行编写的。在实际使用时,请根据数据库软件的语法要求进行微调或调整。
原文地址: http://www.cveoy.top/t/topic/buy3 著作权归作者所有。请勿转载和采集!