zoukankan      html  css  js  c++  java
  • 【sql : 练习题 34,35】成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩

    题目34:成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩

    分析:上一题 33 是在成绩不重复的情况下 查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩

    这两题有什么区别? 有区别! 33 题成绩不重复,得到的结果就是唯一的,可以直接limit 1 拿出来

    但是:这一题目,成绩有重复,再用limit 1 就会漏

    思路:我们找到 选修「张三」老师所授课程的学生中,成绩最高的分数 max(score) as a

    然后再查询一遍 分数 in(a) 就得到结果了

    SELECT student.*,student_score.score FROM student_course, student_score, teacher,student
    WHERE
    teacher.id = student_course.teacherid
    AND teacher.teacher_name = '张三'
    AND student_course.id = student_score.courseid
    AND student.id = student_score.studentid
    AND student_score.score IN (
    SELECT
    MAX( score )
    FROM
    student_course,
    student_score,
    teacher,
    student
    WHERE
    teacher.id = student_course.teacherid
    AND teacher.teacher_name = '张三'
    AND student_course.id = student_score.courseid
    AND student.id = student_score.studentid
    )

     

    题目35:查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩

    分析:这种情况可以通过两张表join 查找

    select a.courseid, a.studentid, a.score from student_score as a
    inner join
    student_score as b
    on a.studentid = b.studentid
    and a.courseid != b.courseid
    and a.score = b.score;

  • 相关阅读:
    Moment.js 超棒Javascript日期处理类库
    java模拟http/https post请求
    Mysql中int和varchar类型
    ssh免密码登录
    Linux优雅退出问题
    Jenkins的权限控制和Rundeck的远程认证
    Jenkins系统+独立部署系统
    Nginx基本介绍
    初窥项目构建
    Rundeck概况
  • 原文地址:https://www.cnblogs.com/yuanyuan2017/p/11377814.html
Copyright © 2011-2022 走看看