查询没有选修大学英语的学生姓名和学号sql语句
时间: 2023-06-11 22:08:15 浏览: 113
同时选修了和号课程的学生-sql讲解初稿
假设学生表名为"students",学号字段名为"student_id",姓名字段名为"name",选修课程表名为"courses",课程编号字段名为"course_id",课程名称字段名为"course_name",选修关系表名为"course_selections",学生选修课程的记录中,学生学号字段名为"student_id",课程编号字段名为"course_id"。
则查询没有选修大学英语的学生姓名和学号的 SQL 语句如下:
```
SELECT students.student_id, students.name
FROM students
WHERE students.student_id NOT IN (
SELECT course_selections.student_id
FROM course_selections
INNER JOIN courses
ON course_selections.course_id = courses.course_id
WHERE courses.course_name = '大学英语'
);
```
这个 SQL 语句使用了子查询和内连接,首先在子查询中,通过内连接将选修课程表和选修关系表联合起来,筛选出选修了大学英语的学生学号。然后在主查询中,通过 NOT IN 关键字,将这些选修了大学英语的学生学号从学生表中排除,最终返回没有选修大学英语的学生姓名和学号。
阅读全文