You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL语句查询course_1分数高于course_2的学生记录

正确SQL查询写法

你原有代码首先需要修正字段名:学生表和成绩表的关联字段是student_id,不是你写的SNO。
要实现course1分数高于course2的筛选,核心逻辑是把成绩表关联两次,分别取出两门课程的成绩再做大小比较,参考写法如下:

SELECT s.student_id, s.name, s.age, sc1.score course_1_score, sc2.score course_2_score
FROM student s
INNER JOIN score_sheet sc1
    ON s.student_id = sc1.student_id AND sc1.course_id = 'c001' -- 对应course_1的课程ID
INNER JOIN score_sheet sc2
    ON s.student_id = sc2.student_id AND sc2.course_id = 'c002' -- 对应course_2的课程ID
WHERE sc1.score > sc2.score

如果需要通过课程名称而非固定ID匹配,可以关联课程表做筛选:

SELECT s.student_id, s.name, s.age, sc1.score math_score, sc2.score art_score
FROM student s
INNER JOIN score_sheet sc1 ON s.student_id = sc1.student_id
INNER JOIN course c1 ON sc1.course_id = c1.course_id AND c1.name = 'Math'
INNER JOIN score_sheet sc2 ON s.student_id = sc2.student_id
INNER JOIN course c2 ON sc2.course_id = c2.course_id AND c2.name = 'Art'
WHERE sc1.score > sc2.score

以上两种写法在你提供的样例数据中运行,都会返回唯一符合条件的Claire的记录。

内容的提问来源于stack exchange,提问作者Afiq Rosli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 07:54:01