使用sql查询"1"课程比"2"课程成绩高的学生的信息及课程分数
时间: 2023-07-19 14:10:01 浏览: 47
假设"1"课程的课程编号为1,"2"课程的课程编号为2,学生信息存储在student表中,课程成绩存储在score表中,可以使用以下SQL语句查询"1"课程比"2"课程成绩高的学生的信息及课程分数:
```
SELECT s.*, s1.score AS score1, s2.score AS score2
FROM student s
JOIN score s1 ON s.id = s1.student_id AND s1.course_id = 1
JOIN score s2 ON s.id = s2.student_id AND s2.course_id = 2
WHERE s1.score > s2.score;
```
这条SQL语句使用了JOIN操作,将学生表和成绩表进行连接查询,并使用WHERE条件过滤出"1"课程比"2"课程成绩高的学生信息及课程分数。
相关问题
用MySQL查询1课程比2课程成绩高的学生的信息及课程分数
好的,您可以尝试使用以下SQL语句来查询1课程比2课程成绩高的学生的信息及课程分数:
```
SELECT a.student_id, a.course_id as course1, a.score as score1, b.course_id as course2, b.score as score2
FROM scores a, scores b
WHERE a.student_id = b.student_id
AND a.course_id = '1'
AND b.course_id = '2'
AND a.score > b.score;
```
这个查询语句会从成绩表中(scores)中获取学生ID,课程1的成绩,课程2的成绩,然后筛选出课程1的成绩大于课程2的成绩的学生,并返回他们的学生ID,课程1成绩和课程2成绩。
请注意,这只是一个示例查询语句,具体的表名和字段名可能会根据您的实际数据结构而有所不同。
查询“01”课程比“02”课程成绩高的学生的信息及课程分数
要查询“01”课程比“02”课程成绩高的学生的信息及课程分数,可以使用以下SQL语句:
```
SELECT a.sid, a.sname, b.score AS score01, c.score AS score02
FROM student AS a
INNER JOIN sc AS b ON a.sid = b.sid AND b.cid = '01'
INNER JOIN sc AS c ON a.sid = c.sid AND c.cid = '02'
WHERE b.score > c.score;
```
这个查询语句使用了INNER JOIN连接了三个表,分别是学生表student、成绩表sc和课程表course。其中,b.cid = '01'和c.cid = '02'用于筛选出01课程和02课程的成绩,b.score > c.score用于筛选出01课程成绩高于02课程成绩的学生。最终查询结果包括学生编号(sid)、学生姓名(sname)、01课程成绩(score01)和02课程成绩(score02)。