查询同时选修了“01”和“02”号课程学生的学号。(要求:1.只使用score表;2.使用多表连接方法)
时间: 2024-10-17 07:10:23 浏览: 299
数据库实验2的实验报告1. 在 studentsdb 数据库中使用 SELECT 语句进行基本查询。 (1)在 student
5星 · 资源好评率100%
在SQL查询中,如果你有一个名为`score`的表,它可能包含学生、课程和成绩信息,你可以通过多表连接(通常使用INNER JOIN)来找出同时选修了"01"和"02"号课程的学生的学号。假设这个`score`表有`student_id`(学生ID)、`course_id`(课程ID)等字段,查询语句可能类似下面这样:
```sql
SELECT s.student_id
FROM score s
WHERE s.course_id IN ('01', '02')
GROUP BY s.student_id
HAVING COUNT(DISTINCT s.course_id) = 2;
```
这个查询做了以下操作:
1. `INNER JOIN` 了`score`表自身,基于每个学生的课程选择。
2. `WHERE` 子句筛选出那些课程ID是'01'或'02'的记录。
3. `GROUP BY` 按照学生ID分组,以便统计每个学生选择了多少种课程。
4. `HAVING COUNT(DISTINCT s.course_id) = 2` 确保只有那些选择了恰好两门课程(即'01'和'02')的学生被返回。
阅读全文