首页 > 数据库 >【MySQL】多行子查询

【MySQL】多行子查询

时间:2022-10-20 09:23:19浏览次数:46  
标签:多行 salary employees 查询 job MySQL id SELECT

1.多行子查询

也称为集合比较子查询,内查询返回多行,使用多行比较操作符。

操作符 含义
IN 等于列表中的任意一个
ANY 和子查询返回的某一个值比较,需要和单行比较操作符一起使用
ALL 和子查询返回的所有值比较,需要和单行比较操作符一起使用
SOME 实际上是ANY的别名,作用相同,一般使用ANY

示例1:返回其它job_id中比job_id为‘IT_PROG’部门任一工资低的员工的员工号、姓名、job_id 以及salary。

SELECT employee_id,last_name,job_id,salary
FROM employees
WHERE salary<ANY(
	SELECT salary
	FROM employees
	WHERE job_id = 'IT_PROG'
) AND job_id <> 'IT_PROG';

示例2:返回其它job_id中比job_id为‘IT_PROG’部门所有工资都低的员工的员工号、姓名、job_id以及

salary

SELECT employee_id,last_name,job_id,salary
FROM employees
WHERE salary<ALL(
	SELECT salary
	FROM employees
	WHERE job_id = 'IT_PROG'
) AND job_id <> 'IT_PROG';

示例3:查询平均工资最低的部门id

方式一

先查部门平均工资,然后查其中最低的,接着取部门平均工资中相等的部门id。注意起别名

SELECT department_id
FROM employees
GROUP BY department_id
HAVING AVG(salary)=(
	SELECT MIN(salary)
	FROM(
		SELECT AVG(salary) AS salary
		FROM employees
		GROUP BY department_id
	) AS dept_avg_sal
);

方式二:

SELECT department_id
FROM employees
GROUP BY department_id
HAVING AVG(salary)<=ALL(
	SELECT AVG(salary)
	FROM employees
	GROUP BY department_id
);

空值问题

查询结果数据为空

SELECT last_name
FROM employees
WHERE employee_id NOT IN(
	SELECT manager_id
	FROM employees
);

标签:多行,salary,employees,查询,job,MySQL,id,SELECT
From: https://www.cnblogs.com/zhishu/p/16808559.html

相关文章

  • docker安装mysql
    一、安装mysql1、dockerpullmysql:8.0.23 下载mysql镜像2、创建容器dockerrun-it-d--namemysql--net=host\-m500m-v/root/mysql/data:/var/lib/mysql\-v......
  • MySQL多表&事务课堂笔记
    今日内容1.多表查询2.事务3.DCL多表查询:*查询语法: select 列名列表 from 表名列表 where....*准备sql #创建部门表 CREATETABLEdept( idINT......
  • MySQL基础课堂笔记
    今日内容数据库的基本概念MySQL数据库软件安装卸载配置SQL数据库的基本概念1.数据库的英文单词:DataBase简称:DB2.什么数据库? *用于存储和管理数......
  • MySQL约束课堂笔记
    今日内容1.DQL:查询语句 1.排序查询 2.聚合函数 3.分组查询 4.分页查询2.约束3.多表之间的关系4.范式5.数据库的备份和还原DQL:查询语句1.排序查询......
  • Hudi 数据湖的插入,更新,查询,分析操作示例
    Hudi数据湖的插入,更新,查询,分析操作示例作者:Grey原文地址:博客园:Hudi数据湖的插入,更新,查询,分析操作示例CSDN:Hudi数据湖的插入,更新,查询,分析操作示例前置工作首先,需要......
  • mysql技术总结1-索引结构
    最近把mysql的知识重新梳理了下。分几个点。mysql索引结构mysql查询优化mysql事务mysql架构设计mysql高可用这篇写一些索引结构。先搞几个问题1、mysql的存储引擎......
  • 2022-10-19 mysql 查询中found_rows没有返回正确的总数据量 limit
    查询语句中使用了limit来进行分页,本打算是1页返回10行数据,满足条件的数据有15条,使用了limit后再用found_rows查总符合数据,却只得到了10条,而不是15条,证明查询语句不严谨。......
  • 加密数据的模糊查询
     我们知道加密后的数据对模糊查询不是很友好,本篇就针对加密数据模糊查询这个问题来展开讲一讲实现的思路,希望对大家有所启发。为了数据安全我们在开发过程中经常会对重......
  • Hibernate无语句面向对象查询(Criteria)
    一、基本查询。1、使用Session对象创建一个Criteria实例。Criteriacriteria=session.createCriteria(Customer.class);(查询所有的Customer对象)2、调用Criteria对象......
  • 查询系统所有句柄(可以筛选进程打开的全部句柄)
    作者:狂客,原创文章.转载请注明来源,侵权必究#ifndefUNICODE#defineUNICODE#endif#include<windows.h>#include<stdio.h>#defineNT_SUCCESS(x)((x)>=0)#defineSTAT......