`
yjkun
  • 浏览: 12908 次
  • 性别: Icon_minigender_1
  • 来自: 河北
文章分类
社区版块
存档分类
最新评论

外连接替换not in

sql 
阅读更多
select t1.* from test1 t1 where t1.tel not in (select t2.tel from test2 t2 where t1.tel=t2.tel)
替换为
select t.id, t.phone from (select t1.id,t1.tel phone,t2.tel from test1 t1 left join test2 t2 on t1.tel=t2.tel) t where t.tel is null
另外 not in注意null为空的情况 如果为空可能查询不出来了
sql1
select t1.* from test1 t1 where t1.tel not in (select t2.tel from test2 t2 where t1.tel=t2.tel)

sql2
select t1.* from test1 t1 where t1.tel not in (select t2.tel from test2 t2 )  的区别 第二个sql有可能出错
因为 not in ()中如果有一项为null则查询结果为空
上面sql2正确写法
select t1.* from test1 t1 where t1.tel not in (select t2.tel from test2 t2 where t2.tel is not null)


另sql连接字符串
concat链接字符串
select t.id, t.phone
  from (select t1.id, t1.tel phone, t2.tel
          from test1 t1
          left join test2 t2
            on t1.tel = t2.tel or t1.tel =CONCAT('010',t2.tel)) t
where t.tel is null
分享到:
评论

相关推荐

    sql语句优化之用EXISTS替代IN、用NOT EXISTS替代NOT IN的语句

    为了避免使用NOT IN ,我们可以把它改写成外连接(Outer Joins)或NOT EXISTS。 如 我要查询 Sendorder表中的冗余数据(没有和reg_person或worksite相连的数据) sql=”select Sendorder.id,Sendorder.reads,Send...

    Oracle数据库Sql性能调优

    1.21 用表连接替换EXISTS 13 1.22 用EXISTS替换DISTINCT 13 1.23 识别’低效执行’的SQL语句 14 1.24 用索引提高效率 14 1.25 索引的操作 15 1.26 多个平等的索引 16 1.27 等式比较和范围比较 17 1.28 不明确的索引...

    PLSQL程序优化和性能分析方法

    2.4.6 用表连接替换EXISTS 9 2.4.7 用EXISTS替换DISTINCT 10 2.4.8 减少对表的查询 10 2.4.9 避免循环(游标)里面嵌查询 11 2.4.10 尽量用union all替换union 13 2.4.11 使用DECODE函数来减少处理时间 13 2.4.12 ...

    SQL普查优化信息汇总

    用表连接替换EXISTS 使用带有前导字段的like来替换substr函数 考虑使用union all代替多个or连接操作 如果经常执行主细表的联合查询,建立外键索引 考虑使用非唯一索引支持唯一性约束条件 主动的确定使用循环嵌套、...

    FlowReactiveNetwork:Android库侦听网络连接状态以及使用Coroutines Flow进行Internet连接

    除了返回数据类型外,API是相同的: Observable替换为Flow<T> Single替换为suspend fun():T下载您可以通过Gradle依赖库: dependencies { implementation ' ru.beryukhov:flowreactivenetwork:1.0.2 '}// as for the...

    精通sql结构化查询语句

    9.3.4 在内连接中使用聚合函数 9.4 外连接 9.4.1 左外连接 9.4.2 右外连接 9.4.3 全外连接 9.4.4 在外连接中使用聚合函数 9.5 交叉连接 9.5.l 交叉连接的定义 9.5.2 交叉连接举例 9.6 多表连接的综合应用 9.6.1 内...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    说明:用于连接到oracle数据库,也可实现用户的切换 用法:conn 用户名/密码 [as sysdba/sysoper] 注意:当用特权用户连接时,必须带上sysdba或sysoper 例子: 3. 断开连接(disc) 说明:断开与当前数据库的连接 ...

    2009 达内Unix学习笔记

    把前一命令的输出作为后一命令的输入,把几个命令连接起来。 |经常跟tee连用,tee 把内容保存到文档并显示出来。 三、通用后接命令符 -a 所有(all)。 -e 所有(every),比a更详细。 -f 取消保护。 -i 添加...

    oracle sql performance tuning

    3.1 绝大多数情况下NOT EXISTS比NOT IN 效率高 6 3.2 UNION ALL效率比UNION高很多 6 3.3 一些很耗资源的SQL操作,在不必要的情况下不要使用 6 3.4 通常联接查询比子查询的效率要高很多 7 3.5 用TABLE 索引(INDEX)...

    人大金仓驱动包kingbasejdbc.jar V8.6.0、8.8.0驱动jar包

    kingbase JDBC 8.6.0 驱动jar包 kingbase JDBC 8.8.0 驱动jar包 maven 导入 ... <artifactId>kingbase8 <version>8.6.0 <scope>system ${basedir}/src/main/resources/jar/kingbase8-8.6.0.jar ...

    107个常用javascript语句

    99.string.replace(regExpression,replaceString)替换现有字符串. 100.string.split(分隔符)返回一个数组存储值. 101.string.substr(start[,length])取从第几位到指定长度的字符串. 102.string.toLowerCase()使字符...

    DaragonShop系统源码

    not in (select top n*page where ....) 的方法直接到数据库里找 3.在.net里面自带的有个pagedatasource的东东,用这个分页,然后把它当做数据源传给控件,怎么弄自己上网找。 4.这个是很蠢得了,直接用控件分页...

    关系型数据库性能体系设计和效率提升.docx

    7.10 用表连接替换EXISTS 23 7.11用EXISTS替换DISTINCT 24 7.12 尽量用union all替换union 24 7.13 使用DECODE函数来减少处理时间 24 7.14 尽量避免用order by 25 7.15 用Where子句替换HAVING子句 25 7.16 减少多表...

    Radmin自动登录器v3.0-多国语言绿色版-Release1-20150615

    (B)Ctrl+R调出替换对话框,在上面需要替换栏输入:^p ,在下面替换为栏输入:,!^p ,(这里,^p代表回车换行),设置好后再单击“全部替换”按钮即可,需要时可单击“帮助”按钮查看帮助信息; (C)将第一行末尾的 ...

    Radmin自动登录器v3.0

    (B)Ctrl+R调出替换对话框,在上面需要替换栏输入:^p ,在下面替换为栏输入:,!^p ,(这里,^p代表回车换行),设置好后再单击“全部替换”按钮即可,需要时可单击“帮助”按钮查看帮助信息; (C)将第一行末尾的 ...

    HTTP协议详解

    它是一种通用的,无状态(stateless)的协议,除了应用于超文本传输外,它也 可以应用于诸如名称服务器和分布对象管理系统之类的系统,这可以通过扩展它的请求方法,错误代码和报头[47]来实现。HTTP的一个特点是数据...

    审查代码规范(C++)

    审查代码规范 C++ 1. 范围 3 2. 规范性引用文件 3 3. 术语和定义 3 4. 开发工具 3 5. 目录结构 4 6. 布局规范 5 ...10.2.11. 避免在索引列上使用IS NULL和IS NOT NULL 31 10.2.12. 使用UNION-ALL和UNION 32

    DVWA-master.zip

    5、进入setup界面,点击“Create/Reset Database”按钮时如果出现“Could not connect to the database - please check the config file.”的错误信息,那么请打开DVWA-1.0.8/config/config.inc.php文件,将下面这段...

    如何编写批处理文件批处理文件批处理文件

    如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。 语法 call [Drive:][Path] FileName [BatchParameters] [:label [arguments] 参数 [Drive:}[Path] FileName 指定要调用的批处理程序的位置和名称...

    jdbc操作文档,数据库基本操作文档集合

    10.in (相当于or) not in(相当于and) select 字段名 from 表名 where 字段名 in(数值,数值); select 字段名 from 表名 where 字段名 not in(数值,数值); 11.模糊查询 like %:0个或多个任意字符 _:1个任意字符 ...

Global site tag (gtag.js) - Google Analytics