首页 > 数据库 >MySQL12 - 子查询

MySQL12 - 子查询

时间:2023-01-07 15:22:38浏览次数:39  
标签:MySQL12 .. sal 查询 job avg SELECT

子查询

可以在哪里使用子查询?

  • SELECT .. (SELECT) ..
  • FROM .. (SELECT) ..
  • WHERE .. (SELECT) ..

WHERE 子句中的子查询

例子:找出比最低工资高的员工姓名和工资

  • WHERE 子句中不能使用分组函数 MIN()

  • 因此,1 查询最低工资

    • SELECT
      	MIN(sal)
      FROM
      	emp;
      
  • 2 找出大于最低工资的

    • SELECT
      	ename.sal
      FROM
      	emp
      WHERE
      	sal > 800;
      
  • 3 合并

    • SELECT
      	e.ename, e.sal
      FROM
      	emp e
      WHERE
      	sal > (SELECT
      				MIN(sal)
      			FROM
      				emp);
      

FROM 子句中的子查询

FROM后的子查询可以将子查询的结果当作一张临时表

例子:找出每个岗位的平均工资的薪资等级

  • 1 找出每个岗位的平均工资

    • SELECT
      	job, AVG(sal)
      FROM
      	emp
      GROUP BY
      	job;
      
  • 2 将得到的平均工资与薪资等级相匹配

    • SELECT
      	job, avg_sal, grade
      FROM
      	t 
      JOIN
      	salgrade AS s
      ON
      	t.avg_sal > s.losal AND t.avg_sal < s.hisal
      ORDER BY
      	avg_sal ASC, job ASC;
      
  • 3 合并

    • SELECT
      	job, avg_sal, grade
      FROM
      	(SELECT
      		job, AVG(sal) AS avg_sal
      	FROM
      		emp
      	GROUP BY
      		job) AS t 
      JOIN
      	salgrade AS s
      ON
      	t.avg_sal BETWEEN s.losal AND s.hisal
      ORDER BY
      	avg_sal ASC, job ASC;
      

SELECT 子句中的子查询 -- 了解即可

只要子查询多于一条记录就报错,不推荐使用, JOIN ON 语句可以代替

标签:MySQL12,..,sal,查询,job,avg,SELECT
From: https://www.cnblogs.com/Ashen-/p/17032692.html

相关文章

  • MySQL7 - 单表查询总结
    单表查询总结语句顺序SELECT...FROM...WHERE...GROUPBY...HAVING...ORDERBY...执行顺序FROM->WHERE->GROUPBY->HAVING->SELECT->ORDERBYFRO......
  • MySQL6 - 分组查询
    分组查询为什么需要分组查询?在实际应用中,可能需要先进行分组,再对每一组数据进行操作什么是分组查询?SELECT ...FROM ...WHERE ...GROUPBY ...ORDERBY .........
  • oracle查询连接池常用语句
    selectusername,count(*),machinefromv$sessionwhereusernameisnotnullgroupbyusername,machineorderbyusername;selectsid,machine,LAST_CALL_ET,......
  • Cron 常用快速查询
    (1)0/2****?表示每2秒执行任务  (1)00/2***?表示每2分钟执行任务  (1)0021*?表示在每月的1日的凌晨2点调整任务  (2)01510?*MON-FRI......
  • 复杂条件查询功能
    复杂条件查询功能分析   总记录数统计的代码实现UserDao接口:/***查询总记录数*@return*/intfindTotalCount(Map<String,String[......
  • MySQL3 - DQL 数据查询语句基础
    DQL简单查询查询一个字段SELECT字段名FROM表名;select和from都是关键字,字段名和表名是标识符查询两个或多个字段使用逗号","隔开SELECTdeptno,dnameFROM......
  • gget: 一款强大的基因组参考数据库的高效查询工具
    开源Python和命令行程序gget可以高效、轻松地以编程方式访问存储在各种大型公共基因组参考数据库中的信息。gget与可获取用户生成的测序数据的现有工具一起使用,以取......
  • bootstrap-select 的多选+模糊查询下拉框详解(官方示例文档解读)
    bootstrap-select的多选+模糊查询下拉框详解(官方示例文档解读)引入问题之前博主在实际开发中遇到了一个问题,就是需要既支持多选又同时支持模糊查询的下拉控件,大家所熟知......
  • MySQL2 - 基本信息查询
    MySQL基本信息查询操作所有SQL语句以;结尾SQL语句不区分大小写查询数据库有哪些表SHOWTABLES;查看表中全部数据SELECT*FROMemp;查看表的结构DESCemp;/......
  • 在sqlite数据库使用sql查询显示表头列和自动对齐列的方法
    在sqlite数据库使用sql查询的结果中是不带表头列的。如下: 上面已经显示出了SCORE表中的所有数据,但似乎显示的不太明白,因为看不出来各个数据的含义。显示表头(.headero......