查询选修了“C程序设计”的学生学号和姓名;(连接查询、嵌套查询两种方式实现)
时间: 2024-12-17 10:30:13 浏览: 4
基于微信小程序的教务查询系统的设计与实现.docx
5星 · 资源好评率100%
在数据库中,查询选修了"C程序设计"的学生学号和姓名通常需要从学生表(假设为`students`)和课程表(假设为`courses`)通过关联字段如学号(`student_id`)进行联接。这里有两种常见的SQL查询方式:
1. **连接查询**(INNER JOIN):
```sql
SELECT students.student_id, students.name
FROM students
INNER JOIN enrollments ON students.student_id = enrollments.student_id
INNER JOIN courses ON enrollments.course_id = courses.course_id
WHERE courses.course_name = 'C程序设计';
```
这个查询首先将学生表和选课表(enrollments)通过学生ID相连,然后再次与课程表相连,最后筛选出课程名为"C程序设计"的结果。
2. **嵌套查询**(子查询):
```sql
SELECT s.student_id, s.name
FROM students s
WHERE s.student_id IN (
SELECT student_id
FROM enrollments e
INNER JOIN courses c ON e.course_id = c.course_id
WHERE c.course_name = 'C程序设计'
);
```
在这个查询中,内部子查询先找出所有选修"C程序设计"课程的学生ID,外部查询再基于这些ID获取学生的姓名。
阅读全文