您的位置:首页 > 教育 > 锐评 > Oracle各种连接写法介绍

Oracle各种连接写法介绍

2024/10/6 8:22:41 来源:https://blog.csdn.net/chi_666/article/details/140326590  浏览:    关键词:Oracle各种连接写法介绍

1、左连接

左连接(左外连接):
基表全部查出来,外连接表有的匹配,没有则为null;
记录数与基表的记录数相同,前提是where后未加条件过滤;
两种写法(left  join)或(left outer join)外连接时将过滤条件

2、外连接(全外连接)

外连接(全外连接):全外连接返回参与连接的两个数据集合中的全部数据,无论它们是否具有与之相匹配的行;
写法(full  outer  join)在功能上,它等价于对这两个数据集合分别进行左外连接和右外连接,然后再使用消去重复行的并操作将上述两个结果集合并为一个结果集。
(前提时where后未加条件过滤,个人测试结果:全外连接条数=左连接条数+右连接条数-内连接条数)

3、外连接与条件配合使用

当在内连接查询中加入条件时,无论是将它加入到on后面还是加在where后面,其效果都是完全一样的。
但对于外连接情况就不同了,当把条件加入到on后面时,数据库会先返回基表全部记录,然后与外连接表中指定条件的记录进行匹配,记录数与基表的记录数相同;
如果将条件放到where后面,会先进行连接操作,然后使用where子句对连接后的数据进行筛选。

4、自身连接

指同一个表自己与自己进行连接。这种一元连接通常用于从自反关系(也称作递归关系)中抽取数据。
例如:在机构表中查找本机构和上级机构的信息
select * from  A a1  jion  A a2 on a1.parent_orgid=a2.orgid

5、交叉(无限连接)

交叉连接用于对两个源表进行纯关系代数的乘运算。它不使用连接条件来限制结果集合,而是将分别来自两个数据源中的行以所有可能的方式进行组合。
数据集合1中的每个行都要与数据集合2中的每一个行分别组成一个新的行。人们将这种类型的结果集称为笛卡尔乘积。写法:
select * from A  cross  join  B

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com