博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL中exsit和in
阅读量:5069 次
发布时间:2019-06-12

本文共 540 字,大约阅读时间需要 1 分钟。

本周在做ETL的时候踩了个小坑

A表中数据有18条,有字段UserID

B表与A表结构相同,但只有16条数据(手动删除2条,更改2条UserID为不重复的其他值)

Select UserID from B where UserID in (Select UserID from A)

时,查到12条数据(预想为14条)

Select UserID from B where UserID not in (Select UserID from A)

时,查到2条数据(预想为2条)

Select UserID from B where UserID exsit (Select UserID from A)

时,查到14条数据

 

经查询,发现表中有2条数据UserID字段为null。

翻阅资料发现,无论in和not in,null都不成立,而exsit会成立

in的处理方式是:首先查询子查询内容,然后与主查询做笛卡尔积;

exsit的处理方式是:首先查询主查询,然后遍历每一条结果是否符合子查询要求,符合则返回true并保存结果,否则返回false不保存结果

 

转载于:https://www.cnblogs.com/punkrocker/p/10264281.html

你可能感兴趣的文章
切换jdk版本
查看>>
结对开发四~~
查看>>
关于多用户下自动编号的问题
查看>>
只显示重复数据,或不显示重复数据
查看>>
curl 命令详解
查看>>
javascript 对象简单介绍(一)
查看>>
linux正则表达式回忆记录
查看>>
Response.Buffer = True
查看>>
有趣的python range()函数
查看>>
webpack执行命令失败之解决办法
查看>>
理解Mapreduce
查看>>
C语言的变量的作用域和生存期
查看>>
NIS & Kerberos配置
查看>>
【转】非常好的Java反射例子
查看>>
安装clamav对centos系统进行病毒查杀
查看>>
poj3744 Scout YYF I
查看>>
常用Flex 布局归置 》仅做笔记 (scss)
查看>>
Qt-Qml-隐藏标题栏-程序依附任务栏
查看>>
说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
查看>>
前端技术——bootstrap
查看>>