mysql在order by语句内使用子语句查询的问题

初学MySQL,在ORDER BY子句中使用子查询,查询选修0001号课程的学生的姓名,要求按该课程分数从大到小排列显示。

img

img


这是我写的语句,但是它连没有那门课程成绩的同学都显示了,请问如何只显示有成绩的同学并按分数排序。

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/763793
  • 这篇博客也不错, 你可以看下MySQL中ORDER BY排序错误
  • 除此之外, 这篇博客: 对Mysql数据表查询出来的结果进行排序中的 3.2 ORDER BY子句的执行顺序 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • ORDER BY子句的执行顺序永远在最后,再具体一点来说就是,ORDER BY子句的执行顺序永远在SELECT 子句的执行之后

    理由: 因为你得把筛选过、已经分组完成后的数据行拿到后才能进行排序,不然你先排序,然后再去分组,然后再还是要去排序,那这样之前的排序操作就没有任何意义了

写的没看懂啊,left join grade表 根据条件筛出需要的数据在排序