对于exist和in,大家的一致看法如下:
    1.in是子查询为驱动表,外面的表为被驱动表,故适用于子查询结果集小而
外面的表结果集大的情况。
    2.exists是外面的表位驱动表,子查询里面的表为被驱动表,故适用于外面
的表结果集小而子查询结果集大的情况。
    而为何会出现这种exists和in的使用上的区别呢,其实问题的关键在于关联
子查询和非关联子查询上。exists一般都是关联子查询,in则一般都是非关联
子查询。
    对于关联子查询,必须先执行外层查询,接着对所有通过过滤条件的记录,执行
内层查询。外层查询和内层查询相互依赖,因为外层查询会把数据传递给内层查询。
    非关联子查询则必须先完成内层查询之后,外层查询才能介入。
exsits:
 select whatever from table_a a
  where exists(
   select null from table_b b
    where b.id=a.id
    and somecondition
  )
  and somecondition
    可以看到,在exists子查询里面,有关键的一个连接条件:where b.id=a.id,就是这个条件决定了必须先找出a中符合条件的记录,然后才能与b连接,最终得出查询的结果。这就是为什么说exists适用于外面的表结果集小而子查询结果集大的情况。因为必须先执行外层查询,然后才能执行内层查询。
    而in则恰恰相反,不再详述。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21805468/viewspace-619898/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/21805468/viewspace-619898/

exist-in和关联子查询-非关联子查询相关推荐

  1. 相关子查询非相关子查询概念

    子查询:嵌套在其它查询中的查询语句.(又称为内部查询) 主查询:包含其它子查询的查询称为主查询.(又称外部查询) 子查询分为两类: 相关子查询 非相关子查询 在主查询中,每查询一条记录,需要重新做一次 ...

  2. c++ 提取傅里叶描述子_非谐声子模拟方法(Normal Mode Decomposition)

    (本文是2018年"蓝火计划"的调研报告,有修改) 个人博客链接: 非谐声子模拟方法(Normal Mode Decomposition) 引言 固体中的格波由相互独立的简正模式组 ...

  3. SQL的相关子查询和非相关子查询

    SQL的相关子查询和非相关子查询 1相关子查询&非相关子查询概念 2 举例说明 3 参考 1相关子查询&非相关子查询概念 子查询:嵌套在其它查询中的查询语句.(又称为内部查询) 主查询 ...

  4. oracle subquery是什么,如何让非关联子查询(uncorrelated subquery)先执行

    如何让非关联子查询(uncorrelated subquery)先执行 环境:10.2.0.4 / Solaris 9 有一个sql: [php] SELECT M.PROD_DATE, N.FAC_ ...

  5. server多笔记录拼接字符串 sql_第四章、SQL Server数据库查询大全(单表查询、多表连接查询、嵌套查询、关联子查询、拼sql字符串的查询、交叉查询)...

    4.1.查询的类型 declare @value as int set @value = 50 select  'age:'as age,2008 years,@valueas va --这种查询时跟 ...

  6. Oracle 数据库的子查询(关联子查询)

    文章目录 一.子查询结果返回一个值(单列单行) 二.子查询结果返回多行(单列多行) 三.子查询结果返回多列多行 四.关联子查询 (一)子查询执行顺序 (二)exists 关键字 五.子查询总结 六.关 ...

  7. order by 子查询_视图,子查询,标量子查询,关联子查询

    视图 子查询 标量子查询 关联子查询 如何用SQL解决业务问题 各种函数 1. 视图 视图内存放SQL查询语句,运行时运行该语句.查出的数据为临时数据 创建视图 create view as 视图名称 ...

  8. mysql 子表 关联查询语句_MySQL-基本查询语句及方法,连表和子查询

    一.基本查询语句 create table emp( id intnotnull unique auto_increment, name varchar(20) notnull, sex enum(' ...

  9. SQL子查询和关联子查询

    子查询:将用来定义视图的SELECT语句直接用于FROM子句中. SELECT <列名1>, <列名2>, - FROM (<SELECT语句>) AS <视 ...

最新文章

  1. AI规模化落地,英特尔至强的七重助力
  2. Eclipse中JRE System Library、Web App Libraries的作用
  3. MySQL 处理插入重主键唯一键重复值办法
  4. SysLink UserGuide
  5. 2021-2025年中国窗帘行业市场供需与战略研究报告
  6. Java注解的作用?
  7. Visual Studio 2019报错:缺少mfc120.dll
  8. cmake使用介绍【转】
  9. 产品经理常用专业名词
  10. 计算机基础相关知识面试题
  11. 第四届“安洵杯”网络安全挑战赛MISC-Writeup
  12. VSCode小说神器Thief-Book-VSCode页数获取
  13. idea 报错improperly specified vm option. to fix the problem,edit your jvm option and remove the option
  14. 服务器维护 灵魂兽,魔兽世界7.0新灵魂兽麋鹿捕捉方法
  15. 怎么有python画五角星_Python的画五角星
  16. LTE - 以IMS SIP消息为例深入解析RLC AM PDU收发过程
  17. 水文专业对计算机要求,来了来了,高考志愿这么填!
  18. Debian dns设置
  19. Ambari2.7.4 + HDP3.1.4 离线安装(2)
  20. 数据库原理 数据库镜像

热门文章

  1. [luogu-1007]独木桥 题解
  2. More than 100 items having missing data for more than 10 minutes
  3. 一次只做一件事,并做到最好!
  4. Yeelink平台使用——远程控制 RT Thread + LwIP+ STM32
  5. 索尼录音笔怎么导出录音内容_搜狗新品发布,引领录音笔行业走向AI时代!
  6. 2.3(将英尺转化为米)编写程序,读入英尺数,将其转换为米数并显示结果。1英尺等于0.305米
  7. fs文件系统模块常用的API
  8. mysql数据库不耀华答案_mysql数据库简单操作命令
  9. EXT Combox
  10. 李岳恒:高可用的以太坊智能合约下的Token经济即将来临