• Mysql三天入门(二) 子查询


    子查询

    什么是子查询?

    子查询就是嵌套的select语句,可以理解为子查询是一张表。

    • 子查询可以出现在哪里?
       select
          ..(select).
       from
          ..(select).
       where
          ..(select).

    where语句中使用子查询

    • 案例:找出高于平均薪资的员工信息。
      • 第一步:找出平均薪资
        select avg(sal) from emp;
      • 第二步:取得大于平均薪水的员工
        select * from emp where sal > 2073.214286;
      • 第一步和第二步合并
        select * from emp where sal > (select avg(sal) from emp);

    from后面嵌套子查询

    • 案例:找出每个部门平均薪水的等级。
      • 第一步:找出每个部门平均薪水(按照部门编号分组,求sal的平均值)
        select deptno,avg(sal) as avgsal from emp group by deptno;
      • 第二步:将以上的查询结果当做临时表t,让t表和salgrade s表连接,条件是:t.avgsal between s.losal and s.hisal
    select 
    	t.*,s.grade
    from
    	(select deptno,avg(sal) as avgsal from emp group by deptno) t
    join
    	salgrade s
    on
    	t.avgsal between s.losal and s.hisal;
    

    在select后面嵌套子查询。

    • 案例:找出每个员工所在的部门名称,要求显示员工名和部门名。
      • 第一种做法,将员工表和部门表连接
        select e.ename, d.dname from emp e, dept d where e.deptno=d.deptno;
      • 第二种做法,在select语句中再次嵌套select语句完成部分名称的查询
        select e.ename, (select d.dname from dept d where e.deptno=d.deptno) as dname from emp e;
  • 相关阅读:
    qsort
    strcmp
    LotteryDrawing
    retire or not retire ? is a question.
    alloc && afree
    strlen
    c point
    c point ccccc
    MySQL MGR源码分析2
    MySQL MGR实现分析
  • 原文地址:https://www.cnblogs.com/thrseven/p/15115722.html
Copyright © 2020-2023  润新知