(1)SELECT * FROM `datatower-all`.TMP_DWD_POI t1
WHERE EXISTS (
  SELECT 1 FROM `datatower-all`.DWD_POI t WHERE t.POI_GRP_PHYSICAL_ID='100111'
)
解析:当DWD_POI表中有POI_GRP_PHYSICAL_ID='100111'的记录时,返回TMP_DWD_POI表的所有记录;当DWD_POI表中没有POI_GRP_PHYSICAL_ID='100111'的记录时,则无记录返回。
(主查询和exists的子查询无关联)

(2)SELECT * FROM `datatower-all`.TMP_DWD_POI t1
WHERE NOT EXISTS (
  SELECT 1 FROM `datatower-all`.DWD_POI t WHERE t.POI_GRP_PHYSICAL_ID='100111'
)
解析:当DWD_POI表中有POI_GRP_PHYSICAL_ID='100111'的记录时,则无记录返回;当DWD_POI表中没有POI_GRP_PHYSICAL_ID='100111'的记录时,返回TMP_DWD_POI表的所有记录。
(主查询和exists的子查询无关联)

(3)SELECT * FROM `datatower-all`.TMP_DWD_POI t1
WHERE EXISTS (
  SELECT 1 FROM `datatower-all`.DWD_POI t WHERE t.SOURCE_ID = t1.SOURCE_ID AND t.SOURCE_SYS=t1.SOURCE_SYS
  AND t.POI_GRP_PHYSICAL_ID='100111'
)
解析:当DWD_POI表中有t.SOURCE_ID = t1.SOURCE_ID AND t.SOURCE_SYS=t1.SOURCE_SYS AND t.POI_GRP_PHYSICAL_ID='100111'的记录时,返回TMP_DWD_POI表中与DWD_POI表中SOURCE_ID相同,SOURCE_SYS相同,POI_GRP_PHYSICAL_ID='100111'的记录,相当于返回TMP_DWD_POI表相对于NOT EXISTS后子查询的交集。
当DWD_POI表中没有t.SOURCE_ID = t1.SOURCE_ID AND t.SOURCE_SYS=t1.SOURCE_SYS AND t.POI_GRP_PHYSICAL_ID='100111'的记录时,则无记录返回。
(主查询和exists的子查询有关联)

(4)SELECT * FROM `datatower-all`.TMP_DWD_POI t1
WHERE NOT EXISTS (
  SELECT 1 FROM `datatower-all`.DWD_POI t WHERE t.SOURCE_ID = t1.SOURCE_ID AND t.SOURCE_SYS=t1.SOURCE_SYS
  AND t.POI_GRP_PHYSICAL_ID='100111'
)
解析:当DWD_POI表中有t.SOURCE_ID = t1.SOURCE_ID AND t.SOURCE_SYS=t1.SOURCE_SYS AND t.POI_GRP_PHYSICAL_ID='100111'的记录时,返回TMP_DWD_POI表中除去与NOT EXISTS后子查询相同记录后的记录,相当于返回TMP_DWD_POI表相对于NOT EXISTS后子查询的补集。

当DWD_POI表中没有t.SOURCE_ID = t1.SOURCE_ID AND t.SOURCE_SYS=t1.SOURCE_SYS AND t.POI_GRP_PHYSICAL_ID='100111'的记录时,返回TMP_DWD_POI表中所有记录。
(主查询和exists的子查询有关联)
判断主查询和exists的子查询是否有关联的方法:查看子查询的where条件中是否同时包含了子查询表的字段和主查询表的字段,若是,则说明进行了关联,若只有子查询表的字段,则说明未进行关联)

EXISTS 与 NOT EXISTS 的用法及返回结果的更多相关文章

  1. oracle中的exists 和not exists 用法 in与exists语句的效率问题

    博文来源(oracle中的exists 和not exists 用法):http://chenshuai365-163-com.iteye.com/blog/1003247 博文来源(  in与exi ...

  2. sql中exists和not exists的用法

    该文转载自:http://www.cnblogs.com/mytechblog/articles/2105785.html sql中exists,not exists的用法 exists : 强调的是 ...

  3. MySQL exists 和 not exists 的用法

    有一个查询如下: 1 SELECT c.CustomerId, c.CompanyName   2 FROM Customers c   3 WHERE EXISTS(   4     SELECT  ...

  4. 用 EXISTS 或 NOT EXISTS 用法

    项目中遇到这么个情况: t1表 和 t2表  都是150w条数据,600M的样子,都不算大. 但是这样一句查询 ↓ select * from t1 where phone not in (selec ...

  5. MySQL 子查询 EXISTS 和 NOT EXISTS(转)

    MySQL EXISTS 和 NOT EXISTS 子查询 MySQL EXISTS 和 NOT EXISTS 子查询语法如下: SELECT ... FROM table WHERE EXISTS ...

  6. (转)sql中 in 、not in 、exists、not exists 用法和差别

    exists (sql 返回结果集为真)  not exists (sql 不返回结果集为真)  如下:  表A  ID NAME  1    A1  2    A2  3  A3 表B  ID AI ...

  7. SQL中exists、not exists以及in、not in的区别和使用

    exists : 强调的是是否返回结果集,不要求知道返回什么, 比如:   select name from student where sex = 'm' and mark exists(selec ...

  8. 转【】浅谈sql中的in与not in,exists与not exists的区别_

    浅谈sql中的in与not in,exists与not exists的区别   1.in和exists in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表 ...

  9. 浅谈sql中的in与not in,exists与not exists的区别

    转 浅谈sql中的in与not in,exists与not exists的区别   12月12日北京OSC源创会 —— 开源技术的年终盛典 »   sql exists in 1.in和exists ...

  10. MySQL 子查询 EXISTS 和 NOT EXISTS

    MySQL EXISTS 和 NOT EXISTS 子查询 MySQL EXISTS 和 NOT EXISTS 子查询语法如下: SELECT ... FROM table WHERE EXISTS ...

随机推荐

  1. java中for循环的几种方式

    比如定义一个数组int a[]={1, 2, 3, 4},下面我们罗列一下遍历这个数组的方法 1 for(;;) 这也是最常用的方法,不多做解释.代码如下 int a[] = {1, 2, 3, 4} ...

  2. [2017BUAA软工]个人项目

    软工个人项目 一.Github项目地址 https://github.com/Lydia-yang/2017BUAA-SoftwareEngineering 二.解题思路 在刚开始拿到题目的时候,关于 ...

  3. Difference between prop and attr in different version of jquery

    jQuery <1.9$('#inputId').attr('readonly', true); jQuery 1.9+$('#inputId').prop('readonly', true); ...

  4. [转帖]IIS内虚拟站点配置信息说明

    web.config配置详细说明 https://www.cnblogs.com/zhangxiaolei521/p/5600607.html 原作者总结的很详细 但是没有完全的看完 自己对IIS 的 ...

  5. mysql登录密码相关

    设置root登录密码 方法一:用root 进入mysql后 mysql>set password =password('你的密码'); mysql>flush privileges; 方法 ...

  6. Conjugate Function

    共轭函数 共轭函数的定义: 设函数f:Rn→R,定义函数f∗:Rn→R为: f∗(y)=sup(<y,x>−f(x))  x∈D 此函数称为函数f的共轭函数.即函数yx和函数f(x)之间差 ...

  7. 学习笔记特别篇之orm的跨表

    models.Love.objects.filter(b__name="t1",g__nams="a1") 表示先inner join b on xx 再 in ...

  8. asp.net 后台<%@ Page%> page指令属性

    aspx文件有如下一行代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind=" ...

  9. 使用libcurl 发送post请求

    SendHttpPost(string& strUrl, string& strPost, string& strResponse, int nTimeOut) { CURLc ...

  10. hdu 3949 XOR (线性基)

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=3949 题意: 给出n个数,从中任意取几个数字异或,求第k小的异或和 思路: 线性基求第k小异或和,因为题 ...