select aa.sid,s.sname from
(select sc.sid,sc.cid,sc.score,c.cname
from sc inner join cource c on sc.cid = c.cid
where c.cname in('语文','数学')) aa
inner join student s on aa.sid = s.sid
group by aa.sid,s.sname
having count(aa.*) > 1 --此处选出同时选择了“语文”和“数学”两门课的学生
and sum(case aa.cname when '语文' then aa.score else 0 end) > sum(case aa.cname when '数学' then aa.score else 0 end) -- 次数选出“语文”成绩大于“数学”成绩的学生
追问你好 我测试了你的语句 最后得到的结果是 语文和数学 都学了的学生,并没有查语文比数学高的学生,能再帮忙看下嘛