zoukankan      html  css  js  c++  java
  • mysql练习,查询某班级中各科成绩最高的学生信息

    班级表class

    成绩表source

     

    学生表student


     1、查询班级一班的各科成绩最高的学生信息

    使用左连接 left join
    SELECT
    a.stuid, a.stuname, a.course, a.source, a.classname FROM ( SELECT student.stuid, student.stuname, source.course, source.source, class.classname FROM student LEFT JOIN class ON class.classid = student.classid LEFT JOIN source ON student.stuid = source.stuid WHERE class.classname = '一班' ) AS a LEFT JOIN ( SELECT student.stuid, student.stuname, source.course, source.source, class.classname FROM student LEFT JOIN class ON class.classid = student.classid LEFT JOIN source ON student.stuid = source.stuid WHERE class.classname = '一班' ) AS b ON a.source < b.source AND a.course = b.course WHERE b.course IS NULL
    SELECT a.stuid, a.stuname, a.classname, a.course, a.source FROM(
    SELECT student.stuid, student.stuname, class.classname, source.course, source.source FROM student
    JOIN class ON class.classid = student.classid AND class.classname = '一班'
    JOIN source ON source.stuid = student.stuid) AS a
    JOIN (
        SELECT b.stuid, b.stuname, b.classname, b.course, max(b.source) as max_source FROM(
        SELECT student.stuid, student.stuname, class.classname, source.course, source.source FROM student
        JOIN class ON class.classid = student.classid AND class.classname = '一班'
        JOIN source ON source.stuid = student.stuid) AS b
        GROUP BY b.course
    ) AS c
    ON c.course = a.course AND c.max_source = a.source
  • 相关阅读:
    虚拟化碎片知识
    CentOS升级内核及KVM安装(已试验,可行)
    Libvirt 虚拟化库剖析
    [ACM]Max Sum
    [ACM]n a^o7 !
    [java]ActionEvent事件:获取输入字符串的长度
    [ACM]The Best Seat in ACM Contest
    [java]ItemEvent事件:简单计算器
    通过注册表的句柄得到当前句柄在注册表中的路径
    [测试模式]Setup方法的滥用
  • 原文地址:https://www.cnblogs.com/xinjing-jingxin/p/13338312.html
Copyright © 2011-2022 走看看