比如:表A里面的一个字段叫做MOBILE 里面存的记录如下
1
2
3
4
5
6
7
8
1
表B里面的一个字段也叫做MOBILE里面存的记录如下
1
2
3
4
1
9
10
(1)我们要查询一下A和B里面都有的,以前我使用的是
select A.mobile from  A where A.mobile in (select B.mobile from B)
出来结果为:
1
1
2
3
4
没关系,去除重复就得到结果1,2,3,4了
现在我们使用另外一种SQL呢:
select A.mobile from A,B where A.mobile=B.mobile
结果为
1
1
2
3
4
1
1
同样滤重得到结果1,2,3,4
(2)第二个实验我们要取一下在A中有的,而在B中没有的,以前我都是使用not in 不要太熟练了,呵呵!不过从来也不考虑个效率。
select  A.mobile from  A where A.mobile not in (select B.mobile from B)
得出结果
5
6
7
8
然后我们再使用连接在处理
select A.mobile from A,B where A.mobile=B.mobile(+) and B.mobile is null
这条语句还可以表示为:
select A.mobile from A left outer  join B on (A.mobile=B.mobile) where B.mobile is null
结果为:
6
5
7
8
(3) 第三个实现我们要取B中有的,而A中没有的,直接用连接了
select B.mobile from B left outer join A on (B.mobile=A.mobile) where A.mobile is null
等价于
select B.mobile from A,B where A.mobile(+)=B.mobile and A.mobile is null 
等价于
select B.mobile from A right outer join B on (A.mobile=b.mobile) where A.mobile is null
结果为:
10
9
这样的话大家应该对左外连接,右外连接有个理解了吧!!!使用连接肯定是要比not in 的效率高多了,这可不是我说的DBA说的!呵呵!ORACLE10G测试通过!

使用连接来代替in和not in(使用外连接技巧)相关推荐

  1. oracle--day2(单值函数(字符函数,日期函数,转换函数,数字函数),日期格式(yyyy,mm等含义),表示一个日期数据的4种方式,多表查询(连接查询(等值连接,不等值连接,外连接,自连接))

    第三章:单值函数     函数分为:       1.单值函数           1.字符函数           2.日期函数           3.转换函数           4.数字函数 ...

  2. 内连接(等值、非等值连接)、外连接(左外连接、右外连接、全连接)、自然连接、自连接

    目录 一.交叉连接(笛卡尔积) 二.内连接(等值.非等值连接) 三.外连接(左外连接.右外连接.全连接) 四.自然连接 五.自连接 一.交叉连接(笛卡尔积) 交叉联接返回左表中的所有行,左表中的每一行 ...

  3. MySQL 学习笔记(15)— 连接查询(内连接、左外连接、右外连接、全外连接、交叉连接、自然连接等)

    本文参考:https://gitbook.cn/gitchat/column/undefined/topic/5db92b68a9c3a53bc3800eff SQL 支持的连接查询包括内连接.外连接 ...

  4. oracle full outer join,oracle 内连接(inner join)、外连接(outer join)、全连接(full join)...

    建表语句: create table EMPLOYEE ( EID NUMBER, DEPTID NUMBER, ENAME VARCHAR2(200) ) create table DEPT ( D ...

  5. C++ 内连接与外连接 (转)

    啥叫内连接 外连接 我们知道编译的时候(假如编译器是VS),是以源文件cpp文件为单位,编译成一个个的obj文件,然后再通过链接器把不同的obj文件链接起来. 简单的说,如果一些变量或函数的定义是内连 ...

  6. oracle 连接查询--内连接与外连接

    一.外连接 oracle 连接查询分为外链接和内连接,我们先看外连接[outer join].oracle 的外连接查询分为: 左外连接 (左边的表不加限制) left outer join: 右外连 ...

  7. Oracle 左外连接的一些測试

    为了更加深入左外连接,我们做一些測试,外连接的写法有几种形式,我们能够通过10053跟踪到终于SQL转换的形式. --初始化数据 create table A (   id number,   age ...

  8. 深入理解MySQL的外连接、内连接、交叉连接

    1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和 ...

  9. MySQL LEFT/RIGHT JOIN:外连接查询

    MySQL 中内连接是在交叉连接的结果集上返回满足条件的记录:而外连接先将连接的表分为基表和参考表,再以基表为依据返回满足和不满足条件的记录. 外连接更加注重两张表之间的关系.按照连接表的顺序,可以分 ...

  10. 13、 LEFT/RIGHT JOIN:外连接(左连接,右连接)

    内连接的查询结果都是符合连接条件的记录,而外连接会先将连接的表分为基表和参考表,再以基表为依据返回满足和不满足条件的记录. 外连接可以分为左外连接和右外连接,下面根据实例分别介绍左外连接和右外连接. ...

最新文章

  1. 下载CentOS源码、Hyper-V虚拟机联网、拷贝文件到Hyper-V虚拟机中的Linux系统
  2. RAID原理及其使用方法
  3. [Mac]一些命令技巧
  4. 对于scanf的使用一点体会心得
  5. mvc 一般注释_使用带有注释和JQuery的Spring MVC 3的Ajax
  6. queue模块的使用
  7. const指针和指向const对象的指针
  8. editplus更改编码
  9. 读python源码--对象模型
  10. mysql dbutil_DBUtil详解
  11. Android apk快速定位、灰色按钮克星--DroidSword
  12. 项目管理工具与技术---项目风险管理中的工具与技术
  13. 人像后期修图技巧讲解 | 教你如何高效修图
  14. 腾讯笔试题——五笔编码
  15. 强人工智能和弱人工智能
  16. SEP8266 由零开始(一),最小系统,下载,与WiFi建立
  17. Xcode13 新建项目 Products 目录显示方法
  18. 泰坦尼克号的逻辑回归模型
  19. Havel—Hakimi定理(度序列)
  20. 《数据结构(C语言版)》严巍敏课件~第七章:图

热门文章

  1. Scala 读取文件
  2. 毕业设计:文献参考(十三)
  3. 在html中用js代替${pagecontext.request.getcontextpath}这样就不用使用jsp了
  4. Nancy 学习-视图引擎 继续跨平台
  5. 更改Mysql数据库存储位置的具体步骤
  6. 重新想象 Windows 8 Store Apps (52) - 绑定: 与 Element Model Indexer Style RelativeSource 绑定, 以及绑定中的数据转换...
  7. 列表导航栏实例(04)——精美模板赏析
  8. 忘记目标 潜心做事([日] 端河光二)
  9. SCNCHECKPOINT
  10. flex 3名域namespace的使用有的也称命名空间