解决Mysql多行子查询的使用及空值问题


Posted in MySQL onJanuary 22, 2022

1 定义

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

2 多行比较操作符

解决Mysql多行子查询的使用及空值问题

-- 多行子查询

-- IN
SELECT
	employee_id,
	manager_id,
	department_id 
FROM
	employees 
WHERE
	manager_id IN ( -- 在返回集合中查找有没有相同的manager_id在里面
	SELECT
		manager_id 
	FROM
		employees 
	WHERE
	employee_id IN ( 141, 147 ));
	
-- ANY
#题目:返回其它job_id中比job_id为'IT_PROG'部门任一工资低的员工的员工号、姓名、job_id 以及salary
	last_name,
	job_id,
	salary 
	job_id != 'IT_PROG' 
	AND salary < ANY ( -- 比任意一个小都可以
	SELECT salary FROM employees WHERE job_id = 'IT_PROG' );
-- ALL
#题目:返回其它job_id中比job_id为'IT_PROG'部门所有工资低的员工的员工号、姓名、job_id 以及salary
	AND salary < ALL ( -- 比所有的都小才可以

3 空值问题

3.1 问题

-- 空值问题
SELECT
	last_name 
FROM
	employees 
WHERE
	employee_id NOT IN (
	SELECT -- 子查询中的结果有NULL
		manager_id 
	employees)

子查询的结果:

解决Mysql多行子查询的使用及空值问题

查询结果:

解决Mysql多行子查询的使用及空值问题

3.2 解决

去掉子查询中的NULL即可

-- 空值问题解决
SELECT
	last_name 
FROM
	employees 
WHERE
	employee_id NOT IN (
	SELECT
		manager_id 
	FROM
		employees 
	manager_id IS NOT NULL)

子查询去掉NULL:

解决Mysql多行子查询的使用及空值问题

查询结果:

解决Mysql多行子查询的使用及空值问题

到此这篇关于Mysql多行子查询的使用及空值问题的解决的文章就介绍到这了,更多相关Mysql多行子查询内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL令人咋舌的隐式转换
Apr 05 MySQL
详解MySQL的半同步
Apr 22 MySQL
MySQL 视图(View)原理解析
May 19 MySQL
SQL实现LeetCode(177.第N高薪水)
Aug 04 MySQL
MySQL之select、distinct、limit的使用
Nov 11 MySQL
mysql timestamp比较查询遇到的坑及解决
Nov 27 MySQL
Mysql存储过程、触发器、事件调度器使用入门指南
Jan 22 MySQL
MySQL中一条SQL查询语句是如何执行的
Apr 08 MySQL
mysql 索引的数据结构为什么要采用B+树
Apr 26 MySQL
mysql性能优化以及配置连接参数设置
May 06 MySQL
mysql数据库实现设置字段长度
Jun 10 MySQL
MySQL中dd::columns表结构转table过程及应用详解
Sep 23 MySQL
如何避免mysql启动时错误及sock文件作用分析
Jan 22 #MySQL
教你使用VS Code的MySQL扩展管理数据库的方法
Jan 22 #MySQL
彻底解决MySQL使用中文乱码的方法
Jan 22 #MySQL
mysql分组后合并显示一个字段的多条数据方式
Jan 22 #MySQL
MySQL中int (10) 和 int (11) 的区别
Jan 22 #MySQL
JMeter对MySQL数据库进行压力测试的实现步骤
MySQL创建定时任务
Jan 22 #MySQL
You might like
使用php get_headers 判断URL是否有效的解决办法
2013/04/27 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
Thinkphp5+uploadify实现的文件上传功能示例
2018/05/26 PHP
js substr、substring和slice使用说明小记
2011/09/15 Javascript
浅析js中取绝对值的2种方法
2013/07/09 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
javascript获得当前的信息的一些常用命令
2015/02/25 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
js动态设置select下拉菜单的默认选中项实例
2018/08/21 Javascript
vue实例中data使用return包裹的方法
2018/08/27 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
python实现telnet客户端的方法
2015/04/15 Python
Python下载指定页面上图片的方法
2016/05/12 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
python使用matplotlib绘制雷达图
2019/10/18 Python
Original Penguin美国官网:布拉德皮特、强尼德普喜爱的服装品牌
2016/10/25 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
工作决心书
2014/03/11 职场文书
班长演讲稿范文
2014/04/24 职场文书
港澳通行证委托书怎么写
2014/08/02 职场文书
领导干部作风建设剖析材料
2014/10/11 职场文书
协议书范文
2015/01/27 职场文书
单位综合评价意见
2015/06/05 职场文书
nginx容器方式反向代理实战
2022/04/18 Servers
python多次执行绘制条形图
2022/04/20 Python