查询至少有一门课与学号为“001”的同学所学相同的同学的学号和姓名;
时间: 2024-04-29 19:22:51 浏览: 205
查询至少学习了1号课程和2号课程的学生的学号,姓名的八种写法
4星 · 用户满意度95%
这道题可以使用子查询来解决。
首先,需要在学生表中找到学号为“001”的同学所学的所有课程:
```sql
SELECT course_id
FROM score
WHERE student_id = '001';
```
接着,将以上查询结果作为子查询,使用IN运算符在成绩表中查找至少有一门课与该同学所学相同的同学的学号和姓名:
```sql
SELECT student_id, student_name
FROM student
WHERE student_id IN (
SELECT DISTINCT student_id
FROM score
WHERE course_id IN (
SELECT course_id
FROM score
WHERE student_id = '001'
)
) AND student_id != '001'; -- 排除学号为001的同学自己
```
注意,为了避免查询结果中包含学号为“001”的同学自己,需要在外层查询中加入条件`student_id != '001'`。另外,使用DISTINCT关键字可以去除子查询中的重复学生记录。
阅读全文