zoukankan      html  css  js  c++  java
  • SQL中exsit和in

    本周在做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不保存结果

  • 相关阅读:
    Linux中的邮件发送
    Python学习笔记18-发送邮件
    Ansible学习笔记
    eclipse使用maven打包时去掉测试类
    CentOS安装redis
    spring boot 部署
    sprint boot 配置
    spring-boot 学习笔记一
    不要容忍破窗户
    阿里云安装Oracle
  • 原文地址:https://www.cnblogs.com/punkrocker/p/10264281.html
Copyright © 2011-2022 走看看