请写SQL,查询001课程比002课程成绩低的所有学生学号
时间: 2023-11-16 09:09:48 浏览: 87
假设有三个表:学生表(students)、课程表(courses)和成绩表(scores),其中成绩表中包含学生ID(sid)、课程ID(cid)和成绩(score)三个字段。
则查询001课程比002课程成绩低的所有学生学号的SQL语句如下:
```
SELECT s.sid
FROM students s
JOIN scores s1 ON s.sid = s1.sid
JOIN scores s2 ON s.sid = s2.sid
JOIN courses c1 ON s1.cid = c1.cid
JOIN courses c2 ON s2.cid = c2.cid
WHERE c1.cname = '001' AND c2.cname = '002' AND s1.score < s2.score;
```
解析:
首先使用 JOIN 连接四个表,筛选出选修了001课程和002课程的学生,并计算他们对应的成绩。然后使用 WHERE 子句过滤出001课程成绩比002课程成绩低的学生学号。最后 SELECT 子句返回符合条件的学生学号。
阅读全文