用连接查询查询没有选修’数据库原理’课程的学生的学号、姓名
时间: 2023-10-28 12:04:32 浏览: 104
查询数据库中所有有成绩的学生的学号和课程号
4星 · 用户满意度95%
好的,以下是查询语句:
```sql
SELECT student.stu_id, student.stu_name
FROM student
LEFT JOIN stu_course ON student.stu_id = stu_course.stu_id
WHERE stu_course.course_id <> 'C001' OR stu_course.course_id IS NULL;
```
解释一下这个查询语句:
首先我们需要查询出没有选修数据库原理课程的学生的学号和姓名,那么我们需要先找到所有选修了数据库原理课程的学生,然后再将这些学生排除在外。
这个查询语句中我们使用了 LEFT JOIN 进行表连接,连接条件是 stu_id 相等。然后我们使用 WHERE 子句过滤出没有选修数据库原理课程的学生,其中包含两种情况:
1. 学生没有选修任何课程,那么 stu_course 表中对应的记录会是 NULL;
2. 学生选修了其他课程,那么 stu_course 表中对应的记录会是其他课程的 ID。
因此,我们需要找到 stu_course.course_id 不等于 'C001' 或者是 NULL 的记录,其中 'C001' 表示数据库原理课程的 ID。
最后,我们查询出符合条件的学生的学号和姓名。
阅读全文