查询课程编号为“0001”的课程比“0002”的课程成绩高的所有学生的学号
时间: 2024-06-08 19:12:28 浏览: 148
查询数据库中所有有成绩的学生的学号和课程号
4星 · 用户满意度95%
假设有三张表:学生表(student)、课程表(course)和成绩表(score),其中学生表和课程表的结构如下:
student表
| Column | Type |
| ------ | ------ |
| sno | string |
| sname | string |
| ssex | string |
| sage | int |
| sdept | string |
course表
| Column | Type |
| ------ | ------ |
| cno | string |
| cname | string |
| ccredit| int |
成绩表(score)的结构如下:
| Column | Type |
| ------ | ------ |
| sno | string |
| cno | string |
| grade | int |
下面是查询语句:
```sql
SELECT s1.sno
FROM score s1, score s2
WHERE s1.cno = '0001'
AND s2.cno = '0002'
AND s1.sno = s2.sno
AND s1.grade > s2.grade;
```
解释一下:
- 第一行:查询学号
- 第二行:从成绩表中查询两个子表s1和s2,它们分别代表课程编号为“0001”和“0002”的学生的成绩
- 第三行:限制条件,即学号相同
- 第四行:限制条件,即课程编号为“0001”的成绩大于课程编号为“0002”的成绩
这样就可以查询出课程编号为“0001”的课程比“0002”的课程成绩高的所有学生的学号了。
阅读全文