题目和您当年的类似,但是由于加入了男女生的要求所以变得复杂了。具体题目是:求某科目男生最低分和女生最高分。瞻仰您之前的思路后发现,自己没办法操作……图1是表结构。
我一开始想的是,这题一般!直接筛选条件where加上num=max(num),由于最高分或者最低分都有可能存在相同分数,不能用limit。结果因为where后不能加函数所以出师未捷。以至于,最后我只能用子查询的方式,而且巨复杂……代码如下
select sname,num
FROM student1 a join score1 b on a.sid=b.student_id
join course c on b.course_id=cid
WHERE cname='美术' and gender='女'
and num=(SELECT max(num) FROM
score1 join course on score1.course_id=course.cid join student1
on student_id=student1.sid WHERE cname='美术' and gender='女')
请问如何精简查询语句呢