MySQL not in查询不出数据(MySQL not in 无效)

今天使用 MySQL 的 not in 进行查询的时候,发现结果里面并没有返回任何数据。SQL 语句没有任何问题,但是结果集却是空,实在无法理解。纠结了半天,最后使用 left join,两表关联,找到了目标数据。但是这样的话,难道 not in 就不能使用了吗?最后经过查找,找到了原因。

mysql 的 not in 中,不能包含 null 值。否则,将会返回空结果集。

对于 not in 来说,如果子查询中包含 null 值的话,那么,它将会翻译为 not in null。除了 null 以外的所有数据,都满足这一点。所以,就会出现 not in “失效”的情况。

例如:我有两张表,t_b_handle 和 t_b_detail,两张表为一一对应关系,两张表通过 t_b_handle 表中的 detail_id 关联。现有查询语句如下:

错误 SQL:

select * from t_b_detail where id not in (

    select detail_id from t_b_handle

)

那么,如果 t_b_handle 表中的 detail_id 存在 null 值,那么这个 SQL 语句就是错误的。返回的结果集就是空的。

如果出现了这个问题,明明应该有数据,而使用 not in 却返回了空集,那么我们可以使用下面的 SQL 来避免这种情况的发生:

正确 SQL:

select * from t_b_detail where id not in (

    select detail_id from t_b_handle where detail_id is not null

)

这样即可解决此问题。
————————————————
版权声明:本文为CSDN博主「saichaoZhang」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013913942/article/details/80504100

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python语法特点如注释规则、代码缩进、编码规范等

在Python中,通常包括3种类型的注释,分别是单行注释、多行注释和中文编码声明注释。单行注释在Python中,使用“#”作为单行注释的符号。从符号“#”开始直到换行为止,“#”后面所有的内容都作为注释的内容,并被Python编…

修改android.jar教程,Android修改jar包文件

1、Android studio中新建java文件,取和将要修改的文件相同的文件名,把class文件中代码复制过去,修改需要改动的代码2、新建txt文件,将新建的Java文件按照依赖关系将路经添加到新建的txt文件中,被依赖的放在最前面(ps:此…

安卓市场上架总结

安卓上架截图(不要带手机外观) 注意:截图不能有二维码小米 至少3张,480*854像素,JPG、PNG格式。腾讯应用宝 请上传2-5张截图(尺寸保持一致),单张图片不超过1M。截图不能小于320*480像…

android 左右分栏联动布局,Layout 布局(24 分栏)

基础布局使用单一分栏创建基础的栅格布局(:span“0~24”).el-row {margin-bottom: 20px;&:last-child {margin-bottom: 0;}}.el-col {border-radius: 4px;}.bg-purple-dark {background: #99a9bf;}.bg-purple {background: #d3dce6;}.bg-purple-light {background: #e5e9f2…

洛谷P4238 【模板】多项式求逆(NTT)

传送门 学习了一下大佬的->这里 已知多项式$A(x)$,若存在$A(x)B(x)\equiv 1\pmod{x^n}$ 则称$B(x)$为$A(x)$在模$x^n$下的逆元,记做$A^{-1}(x)$ 具体的来说的话,就是两个多项式$A,B$相乘模$x^n$之后,所有次数大于等于$n$的项都…

win10安装TortoiseGit

TortoiseGit 是Git的可视化工具。所以前提是已经安装了Git,安装很简单一路next。 下载地址,百度搜“TortoiseGit”,一般是第一个。 目前地址是:https://tortoisegit.org/download/ 如果打不开,可以进入腾讯软件中心…

CF1045G AI robots(动态开点线段树)

题意 火星上有$N$个机器人排成一行,第$i$个机器人的位置为$x_{i}$,视野为$r_{i}$,智商为$q_{i}$。我们认为第$i$个机器人可以看到的位置是$[x_{i}-r_{i},x_{i}r_{i}]$。如果一对机器人相互可以看到,且它们的智商$q_{i}$的差距不大…

android qq登录 获取用户信息吗,免登录 只需要一个QQ号就能获取QQ头像和QQ昵称 获取QQ用户信息API...

[PHP] 纯文本查看 复制代码<?php // headerheader("Content-Type:application/json");error_reporting(E_ALL^E_NOTICE^E_WARNING);// 获取QQ号$qq $_GET["qq"];// 过滤if (trim(empty($qq))) {echo json_encode(array(status > error,msg > 未…

Python3.8安装 jupyter报错 NotImplementedError

报错如下&#xff1a; 原因&#xff1a; 是由于 python3.8 asyncio 在 windows 上默认使用 ProactorEventLoop 造成的&#xff0c;而不是之前的 SelectorEventLoop。jupyter 依赖 tornado&#xff0c;而 tornado 在 window 上需要使用 SelectorEventLoop&#xff0c;所以产生这…

浅析Nginx 正向代理与反向代理

1、正向代理和反向代理的概念 无论是正向代理&#xff0c;还是反向代理&#xff0c;说到底&#xff0c;就是代理模式的衍生版本罢了。我们都学习过代理设计模式&#xff0c;都知道代理模式中有代理角色和被代理角色&#xff0c;为什么这么说&#xff0c;因为这两个角色对于我们…

pycharm 安装 jupyter

jupyter可以像笔记一样&#xff0c;在学习和整理思路时很好。 使用的python是3.7.5版本 windows安装步骤&#xff1a; cmd 再修改下pip的源&#xff0c;选择国内&#xff0c;这样快。 国内pip源: 阿里云 https://mirrors.aliyun.com/pypi/simple/ 广东 豆瓣https://pypi…

android5.1 sdk version,java - Android SDK version 23.6 - Stack Overflow

Does it support java 8 yet?Eclipse is displaying this as a problem, surely it does support 8 by now? In the release notes for revision 23.6 it says java 7 or higher, does this mean java 8 is included or? Wish theyd be more specific about such details. A…

或成为性能宠儿,荣耀8x Max 骁龙660版首销在即

今天已经是十一假期的最后一天了&#xff0c;假期马上就要结束了&#xff0c;虽然这有点让人遗憾&#xff0c;但是接下来的好消息让很多人的心情好了不少&#xff0c;那就是10月8日荣耀8x Max骁龙660版本就要在全平台开售了&#xff0c;这恐怕是节后最开心的事情了。此前&#…

绩效考核编写说明

第一步&#xff1a; 请大家从群文件下载自己的考核表&#xff0c;该表格是季度初填写的&#xff0c;与实际进度安排有偏差&#xff0c;需要调整&#xff08;见第三步&#xff09; 第二步&#xff1a; 请大家从群文件下载部门考核表&#xff0c;如第四季度该文件名“【预评分】…

android 双线程等待,在Java/Android中启动另一个线程之前如何等待线程完成?

在回答您的问题之前&#xff0c;我强烈建议您查看ExecutorServices&#xff0c;例如ThreadPoolExecutor。现在回答你的问题&#xff1a;如果要等待上一个线程完成&#xff0c;在开始下一步之前&#xff0c;您可以在之间添加thread.join()&#xff1a;for(int i 0; i < 10; …

读书笔记-说服力 让你的PPT会说话

说服力&#xff1a;让你的PPT会说话张志 包翔 刘俊前言优秀的幻灯片是内容和形式的完美统一&#xff0c;掌握配色排版特效的技术也很重要&#xff0c;不过对大部分人&#xff0c;这些基础操作都已经初步掌握了。要进一步提高&#xff0c;技术不是制作高水平PPT的主要障碍&#…

无法访问com.sun.beans.introspect.PropertyInfo

idea在install或者package项目的时候报错&#xff1a;无法访问com.sun.beans.introspect.PropertyInfo 原因是&#xff1a;idea编译该项目的jdk不是1.8 修复方法&#xff1a; idea---file---project structure 把本地安装的jdk1.8配置上 再运行问题解决

idea lombok 插件安装

下载了guns源代码&#xff0c;idea提示很多方法不存在。后来发现是没有安装 lombok 插件。 lombok让java代码更加简洁&#xff0c;具体介绍&#xff1a;https://www.cnblogs.com/heyonggang/p/8638374.html 安装&#xff1a; File---setting---plugins

怎么把pdf转换为html,如何将PDF转换成HTML网页格式呢?

原标题&#xff1a;如何将PDF转换成HTML网页格式呢&#xff1f;现在很多在校程序学生们时常在思考怎么对HTML网页进行编译以呈现出想要展现的内容。但是HTML犹如我们外语学习一样&#xff0c;一个网页有很多的HTML文件&#xff0c;超文本标记语言文件以.htm(磁盘操作系统DOS限制…

Epson C1100报错“Service Req E511”的处理方法

2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/renyuansoft/blog/2231623