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

相关推荐

  1. Oracle各种连接写法介绍

    2024-07-11 14:46:04       25 阅读
  2. oracle dbms_job 写法

    2024-07-11 14:46:04       52 阅读
  3. mongodb进阶聚合查询各种写法

    2024-07-11 14:46:04       39 阅读
  4. Oracle连接和使用

    2024-07-11 14:46:04       62 阅读
  5. Oracle数据库连接方式

    2024-07-11 14:46:04       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 14:46:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 14:46:04       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 14:46:04       58 阅读
  4. Python语言-面向对象

    2024-07-11 14:46:04       69 阅读

热门阅读

  1. C# 委托和事件

    2024-07-11 14:46:04       20 阅读
  2. MySQL常见的几种索引类型及对应的应用场景

    2024-07-11 14:46:04       25 阅读
  3. 带内管理与带外管理

    2024-07-11 14:46:04       21 阅读
  4. linux 内核 红黑树接口说明

    2024-07-11 14:46:04       20 阅读
  5. 使用Python绘制堆积面积图

    2024-07-11 14:46:04       22 阅读
  6. React@16.x(53)Redux@4.x(2)- action

    2024-07-11 14:46:04       23 阅读