使用sql查询"1"课程比"2"课程成绩高的学生的信息及课程分数
时间: 2023-07-19 12:09:57 浏览: 63
sql查询出各科成绩最好的学生信息
假设学生信息和课程分数分别存储在以下两个表中:
学生表 "students":
| id | name |
|----|--------|
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie|
课程分数表 "scores":
| id | student_id | course_id | score |
|----|------------|-----------|-------|
| 1 | 1 | 1 | 80 |
| 2 | 1 | 2 | 90 |
| 3 | 2 | 1 | 85 |
| 4 | 2 | 2 | 75 |
| 5 | 3 | 1 | 95 |
| 6 | 3 | 2 | 85 |
则可以使用以下 SQL 查询语句找出"1"课程比"2"课程成绩高的学生的信息及课程分数:
```
SELECT s.id AS student_id, s.name AS student_name, s1.score AS course1_score, s2.score AS course2_score
FROM students s
JOIN scores s1 ON s.id = s1.student_id AND s1.course_id = 1
JOIN scores s2 ON s.id = s2.student_id AND s2.course_id = 2
WHERE s1.score > s2.score;
```
查询结果为:
| student_id | student_name | course1_score | course2_score |
|------------|--------------|---------------|---------------|
| 1 | Alice | 80 | 90 |
| 3 | Charlie | 95 | 85 |
说明:该查询语句使用了 JOIN 操作符,将学生表和课程分数表连接起来,同时使用了 WHERE 子句筛选出"1"课程比"2"课程成绩高的学生。在 SELECT 子句中,使用了别名来简化结果的字段名称。
阅读全文