帮我写本关任务:第一题 查询课程表中已经有学生选择的课程信息 第二题 查询课程表中没经有学生选择的课程信息 第三题 查询学生表中没有学习高等数学课程的学生信息
时间: 2024-11-27 22:21:37 浏览: 15
好的,这是一个关于数据库查询的问题。我们假设有一个"courses"表记录了所有课程的信息,包括课程ID(course_id);还有一个"students_courses"表,记录每个学生选择了哪些课程,包含学生ID(student_id)和课程ID(course_id)。而"students"表则包含了学生的详细信息,例如学生ID(student_id)。
**第一题:查询已有学生选修的课程信息**
```sql
SELECT c.*
FROM courses c
JOIN students_courses sc ON c.course_id = sc.course_id;
```
这将返回所有已被学生选过的课程详情。
**第二题:查询尚未被学生选修的课程信息**
```sql
SELECT c.*
FROM courses c
LEFT JOIN students_courses sc ON c.course_id = sc.course_id
WHERE sc.course_id IS NULL;
```
这里用了LEFT JOIN,如果某个课程不在关联结果中,那表示还没有学生选择。
**第三题:查询没有学习高等数学课程的学生信息**
假设"courses"表中有一列叫做"course_name",我们可以这样筛选:
```sql
SELECT s.*
FROM students s
LEFT JOIN students_courses sc ON s.student_id = sc.student_id AND c.course_name = '高等数学'
WHERE sc.student_id IS NULL;
```
这会找出还未选修过高等数学的学生。
阅读全文