有两个简单例子,以说明 “exists”和“in”的效率问题
1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ;
T1数据量小而T2数据量非常大时,T1<<T2 时,1) 的查询效率高。
2) select * from T1 where T1.a in (select T2.a from T2) ;
T1数据量非常大而T2数据量小时,T1>>T2 时,2) 的查询效率高。
exists 用法:
请注意 1)句中的有颜色字体的部分 ,理解其含义;
其中 “select 1 from T2 where T1.a=T2.a” 相当于一个关联表查询,相当于
“select 1 from T1,T2 where T1.a=T2.a”
但是,如果你当当执行 1) 句括号里的语句,是会报语法错误的,这也是使用exists需要注意的地方。
“exists(xxx)”就表示括号里的语句能不能查出记录,它要查的记录是否存在。
因此“select 1”这里的 “1”其实是无关紧要的,换成“*”也没问题,它只在乎括号里的数据能不能查找出来,是否存在这样的记录,如果存在,这 1) 句的where 条件成立。
分享到:
相关推荐
本文将深入探讨如何使用.NET库netDXF来解析DXF文件,并进行一系列的操作,如创建块、增加块集合、判断图层以及保存不同版本的DXF文件。 首先,DXF文件是ASCII或二进制格式的,包含了图形对象(如线、圆、文字等)和...
《Core中的UndiffCore解析1》 在计算机体系结构中,Core是处理器的基本执行单元,而UndiffCore是Core的一个特殊部分,它表示未被特定功能分化的核心区域。本文将详细解析UndiffCore类及其在计算面积和功耗时的作用...
下面将分别介绍这些不同类型的`for`语句的使用方法及示例。 #### 示例与解释 ##### 示例1:简单遍历 ```batch @echo off for %%I in (bbs.bathome.net) do echo %%I pause ``` **解释**:这段代码会打印出字符串...
本篇文章将详细介绍这两个关键字的用法,并通过实例进行解析。 首先,`EXISTS`的语法是:主查询中的条件是`EXISTS (子查询)`,如果子查询返回任何行(即使只有一行或零行),那么`EXISTS`为真,整个查询继续执行。...
7. **兼容性**:wangEditor V4通常对现代浏览器有良好的支持,但可能在某些旧版本或非主流浏览器中存在兼容问题,因此在实际使用时需要考虑这些因素。 8. **错误处理**:在使用过程中,应关注可能出现的JavaScript...
【词汇解析】 1. exist: "存在" 是不及物动词,主要表示某事物或某情况的存在状态。例如,"Does life exist on other planets?" 表示“其他星球上是否存在生命?”;"Mike can’t exist on the money he’s earning...
### ADSL常见错误代码解析 在使用ADSL(非对称数字用户线路)进行网络连接时,用户可能会遇到各种各样的错误代码。这些错误代码往往伴随着特定的问题描述,帮助用户定位并解决问题。以下是一些常见的ADSL错误代码...
### VB中FSO对象用法详解 #### 一、前言 在Visual Basic(以下简称VB)编程中,FSO(File System Object)是一个非常强大的工具,它允许开发人员直接操作文件系统,包括文件和目录的创建、删除、复制、移动以及读写等...
因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生 序列 (5 4 3 2 1)。 FOR /F ["options"] %variable IN (file-set) DO command FOR /F ["options"] %variable IN ("string") DO command FOR /F ["options"]...
- **解析**:这里使用的“to have been robbed”是不定式的完成时形式,用作后置定语,修饰前面的名词“The bank”。 通过以上对文档中给出的例子进行分析,我们可以发现这些例子涵盖了英语语法中的多个重要知识点...
if exist C:\Progra~1\Tencent\AD\*.gif del C:\Progra~1\Tencent\AD\*.gif ``` 3. **ping:** 测试网络连通性。 ```batch ping sz.tencent.com > a.txt ping sz1.tencent.com >> a.txt ``` 这里`>`用于覆盖...
- **用法**:`FOR %variable IN (set) DO command [command-parameters]` - **参数**: - `%variable`:指定一个单字母可替换的参数。 - `(set)`:指定一个或一组文件名,支持使用通配符。 - `command`:指定对...
1. **CMSIS(Cortex Microcontroller Software Interface Standard)驱动库** CMSIS是ARM公司定义的一套标准接口,用于访问Cortex-M系列微控制器的硬件资源。在LPC17XX的库中,CMSIS驱动库提供了一组统一的API,...
These phenomena exist for several reasons. Firstly, -------------(原因一). Then, -------------(原因二). Maybe there are some other reasons to explain the phenomenon. However, it is urgent for us to ...
第二种方法是通过遍历列表并使用集合(set)来存储已经出现过的键值,从而达到去除重复的目的。 ```python def distinct2(items): exist_questions = set() result = [] for item in items: question = item['...
### Bash 项目文档知识点解析 #### 一、批量添加用户 **需求背景及目标:** 在企业级系统管理中,批量添加用户是一项常见的任务。随着业务的发展和技术的变化,经常会出现新项目的上线或是大规模的人员调整,这就...
#### 1. There ought to be less anxiety over the perceived risk of mountain climbing than _____ in the public mind today. **选项:** A. existing B. to exist C. exists D. have exist **正确答案:C** *...
for /r d: \%h in (file1,file2) do if exist \%h echo \%h ``` - **语法解析**:此命令从驱动器 `d:` 开始递归地搜索名为 `file1` 和 `file2` 的文件,并检查它们是否存在。如果存在,则输出文件路径。 - **应用...
当子查询返回多个值时,可以使用 IN 运算符来匹配这些值中的任何一个。 ### 8. EXISTS 子查询返回值类型 8. EXISTS 子查询的返回值是( )。 a) 数值类型 b) 字符串类型 c) 逻辑类型 d) 日期和时间类型 **...