使用MySQL相关子查询(not exists+表子查询)求选修了'刘东明' 同学选修的全部课程的学生的学号。
时间: 2023-06-11 20:05:03 浏览: 427
mysql第四章高级查询PPT
这是一道 SQL 查询题,可以用以下语句来解决:
SELECT DISTINCT stu_id
FROM stu_course
WHERE course_id IN (
SELECT course_id
FROM course
WHERE teacher_name = '刘东明'
)
AND NOT EXISTS (
SELECT *
FROM stu_course sc
WHERE sc.stu_id = stu_course.stu_id
AND sc.course_id NOT IN (
SELECT course_id
FROM course
WHERE teacher_name = '刘东明'
)
);
上述语句中,第一个子查询用来找到刘东明老师教授的所有课程;第二个子查询用来找到所有选修了该同学这些课程的学生,这里使用 not exists 子查询来判断学生是否选修了刘东明老师的所有课程。最终的结果是所有选修了刘东明老师全部课程的学生的学号。
阅读全文