题目:查询平均成绩在80分及以上的所有学生的学号及平均成绩并按平均成绩降序排列。
SELECT s1.sno FROM student s1,class c1,timetable t,course c2,score s2 WHERE
s1.classid = c1.classid AND c1.classid = t.classid AND t.courseid = c2.courseid
AND c2.courseid = s2.courseid;
写到这里一脸懵逼,怎么做啊?
SELECT s1.sno FROM student s1,class c1,timetable t,course c2,score s2 WHERE
s1.classid = c1.classid AND c1.classid = t.classid AND t.courseid = c2.courseid
AND c2.courseid = s2.courseid;
写到这里一脸懵逼,怎么做啊?
解决方案 »
- MySQL性能问题,使用固定内存,占用过多CPU
- 在mysql服务器上添加一个允许远程访问的用户
- windows下怎么用mysqldump导入liunx下导出的sql.gz
- 求sql语句将一个字段。按指定字符分成几个字段
- 能不能删除 个别字段中的单个数据 而别的字段数据保持原值?
- ?-?-????如何用ODBC建立odbc数据源?
- 如何制作精简的“MySQL+ADO+应用软件”的安装程序?
- mysql的一点小问题
- mysql权限问题
- MYSQL5.7压缩包安装后,无法使用Navicat的查询工具。
- 为什么我往MySQL数据库中保存文件,始终只要1M左右,数据好像被截断了?
- Qt连接mysql数据库,执行QSQLQuery执行语句的时候程序崩溃
select T1.sno as 学号, T2.sname as 姓名,
T1.avgscore as 平均成绩
(select sno, sum(score)/count(courseid) as avgscore
from score group by sno
having avgscore >= 80) AS T1
left join student AS T2
on T1.sno = T2.sno
order by T1.avgscore如果 having avgscore >= 80 报错, 那就用 having sum(score)/count(courseid) >= 80
from student left join score
on student.sno = score.sno
group by student.sno
having avg(score.score)>80
order by 平均成绩 desc 这样试试