zoukankan      html  css  js  c++  java
  • 【sql: 练习题7】查询没有学全所有课程的同学的信息

    题目:查询没有学全所有课程的同学的信息

    分析:没有学全? 意思是我是不是可以这样想:student_score 我以用户id 进行分组,然后拿到每个用户的课程id count < 课程 student_course 的count 总数 

    就算是 没有学全,于是sql来了

    SELECT student.* FROM student,
        (SELECT studentid, COUNT(*) AS a FROM student_score GROUP BY studentid HAVING a<(SELECT COUNT(*) FROM student_course))b
    WHERE student.id = b.studentid

    问题来了:这里是根据学生分数表 为基数查询的,有的学生在分数表里面一条记录都没有,没有学过任何一门课程,那么这样的群体就查不出来了

    于是 要 反向思维 来写这个:我们先查询所有学过完整课程的学生,然后我们要没有学完的学生 就是 not in

    SELECT student.* FROM student WHERE student.id NOT IN
        (SELECT studentid FROM student_score GROUP BY studentid HAVING COUNT(courseid) = (SELECT COUNT(*) FROM student_course))

    查询的结果集明显跟上面的不一样  ....

  • 相关阅读:
    28. css样式中px转rem
    27.用webpack自搭react和vue框架
    26.webpack 入门
    25.redux回顾,redux中的action函数异步
    24.redux
    23.react-router 路由
    22.2、react生命周期与react脚手架(二)
    22.1 、react生命周期(一)
    21.react 组件通信
    const关键字的作用
  • 原文地址:https://www.cnblogs.com/yuanyuan2017/p/11326824.html
Copyright © 2011-2022 走看看