①查询没有选修课程编号为C01课程的学生的学号和姓名。(NOT IN \NOT EXISTS实现否定条件的多表查询)
时间: 2024-11-15 08:22:22 浏览: 15
.分别查询学生表和学生修课表中的全部数据。
为了查询没有选择课程编号为"C01"的学生的学号和姓名,我们可以使用一个包含两个部分的SQL查询:一个是子查询,用于找出已选择"C01"课程的学生;另一个部分则通过`NOT IN`关键字筛选出没有这些记录的学生。假设我们的数据分布在两个表中,分别是`students`(存储学生信息)和`enrollments`(存储学生选课信息),并且`enrollments`表有`student_id`和`course_code`字段。
以下是查询的SQL语句:
```sql
SELECT s.student_id, s.name
FROM students s
LEFT JOIN enrollments e ON s.student_id = e.student_id AND e.course_code = 'C01'
WHERE e.student_id IS NULL;
```
在这个查询中,`LEFT JOIN`连接了`students`和`enrollments`表,然后`WHERE`子句中的`e.student_id IS NULL`表示那些在`enrollments`表中找不到匹配"C01"课程的学生,也就是没有选修该课程的学生。
阅读全文