zoukankan      html  css  js  c++  java
  • 小菜菜mysql练习解读分析1——查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数

    查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数

    好的,第一道题,刚开始做,就栽了个跟头,爽歪歪,至于怎么栽跟头的

    ——需要分析题目,查询的是,查询的是(1)学生的信息(2)满足条件的学生的'课程分数'(不在学生表里)需要从另外一张表得来(3)条件是-" 01 "课程比" 02 "课程成绩高(成绩表就满足)

    因此就是,需要获得学生的信息,那里满足该学生的01课程比02课程高!!!需要展示该学生的信息,及其01与02的分数~~~开始来

    1、找出有01成绩的同学成绩信息

    SELECT * from sc WHERE sc.CId='01'

    查出结果如下:

    2、找出有02成绩的同学成绩信息

    SELECT * from sc WHERE sc.CId='02'

    3、以上两种结果需要满足一定条件(1)SId要一致【同一人】(2)且01.score>02.score

    然后咱们胡乱一操刀:

    SELECT* FROM (SELECT * from sc WHERE sc.CId='01')as a,(SELECT * from sc WHERE sc.CId='02')as b

    完美,接下来嫁接条件——行过滤——where

    然后又一操刀

    SELECT* FROM (SELECT * from sc WHERE sc.CId='01')as a,(SELECT * from sc WHERE sc.CId='02')as b WHERE a.SId=b.SId AND a.score>b.score

    4、普天同庆,好像又离开心有丢丢远,接下来要干嘛,我也忘了~

    5、看着拿到了SId,score,score1,当然是存下来,为了后面做准备,搞事

    SELECT a.SId,a.score class1,b.score class2 FROM (SELECT * from sc WHERE sc.CId='01')as a,(SELECT * from sc WHERE sc.CId='02')as b WHERE a.SId=b.SId AND a.score>b.score

    6、开心。然后咱们假装这是一个新表结果,又给命名,为r,和student一查,查出满足

    SELECT * from student RIGHT JOIN
    (SELECT a.SId,a.score class1,b.score class2 FROM (SELECT * from sc WHERE sc.CId='01')as a,(SELECT * from sc WHERE sc.CId='02')as b WHERE a.SId=b.SId AND a.score>b.score)r
    ON student.SId=r.SId

    大概的就查出来了,(⊙o⊙)…菜宝宝加油

     【等等,这里仿佛用到了join on,还是right join on,那它跟left join,outer join,inner join ……各种方向的join 有什么区别,分别应用有撒不同呢,小菜菜下节试着分析解读一下】

    just move on
  • 相关阅读:
    ExtJS4 动态生成grid出口excel(纯粹的接待)
    oracle10g获得Date类型字段无分,秒的解决方案!
    ubuntu13.10 下一个 g++和gcc 4.8不兼容的问题不能被安装
    简单的导航
    Duanxx的C++学习 : 数字转换String
    图widget--jqplot样品和参数描述的简单演示
    m_Orchestrate learning system---三十、项目中的dist文件一般是做什么的
    开放windows服务器端口-----以打开端口8080为例
    phpstudy一个域名配置两个网站(一个是thinkphp5,一个是原生php)
    双向绑定的具体应用场景有哪些
  • 原文地址:https://www.cnblogs.com/ql70me/p/10329630.html
Copyright © 2011-2022 走看看