“,”:代表笛卡尔积;

“natural join”:代表自然连接,即同名列等值连接;

“natural left outer join”:表示左外连接;

“natural right outer join”:表示右外连接。

注意:以下的写法在Oracle中都是不正确的。

1.r1 join r2

2.r1 inner join r2

3.r1 left outer join r2(如果要用左外连接,需要加natural关键字或者后面加on做条件筛选,否则,语法错误)

4.r1 right outer join r2(道理同上)

同时,需要注意:natural join 和 natural inner join是一样的。因为自然连接默认就是内连。

接下来,看代码示例:

1.建表,插入数据:

drop table relation2;
drop table relation1; create table relation1(
id number(10) not null,
r1_col1 varchar2(50),
r1_col2 varchar2(50),
primary key (id)
); create table relation2(
id number(10) not null,
r2_col1 varchar2(50),
r2_col2 varchar2(50),
primary key (id)
); insert into relation1 values(1,'A1','A2');
insert into relation1 values(2,'B1','B2');
insert into relation1 values(3,'C1','C2');
insert into relation1 values(4,'D1','D2');
insert into relation1 values(5,'N1','N2');
insert into relation1 values(6,'M1','M2');
-----------------------------------------------
insert into relation2 values(1,'E1','E2');
insert into relation2 values(2,'F1','F2');
insert into relation2 values(3,'G1','G2');
insert into relation2 values(4,'H1','H2');
insert into relation2 values(7,'X1','X2');
insert into relation2 values(8,'Y1','Y2');

插入的结果:

relation1:

relation2:

2.查询

select * from relation1,relation2;--笛卡尔积

总共36条记录。行号为37是因为第一条记录从第二行开始。

select * from relation1 natural join relation2;--自然连接(默认内连)

select * from relation1 natural inner join relation2;--自然连接(显式内连)

select * from relation1 natural left outer join relation2;--自然左外连接

select * from relation1 natural right outer join relation2;--自然右外连接

“,”、“natural join”、“natural left outer join”、“natural right outer join”的用法总结的更多相关文章

  1. MySql的join(连接)查询 (三表 left join 写法)

    1.内连接:将两个表中存在连结关系的字段符合连接条件的记录形成记录集 Select A.name,B.name from A inner join B on A.id=B.id和 Select A.n ...

  2. [BTS]The join order has been enforced because a local join hint is used.;Duplicate key was ignored.".

    在一个客户的BizTalk Server 2013 R2环境中会报如下的ERROR,查找相关资料后,先试试停掉所有Trace. Log Name:      ApplicationSource:    ...

  3. inner join(inner可省) 与 left join 之间的区别

    关于inner join 与 left join 之间的区别,以前以为自己搞懂了,今天从前端取参数的时候发现不是预想中的结果,才知道问题出在inner join 上了. 需求是从数据库查数据,在前端以 ...

  4. flink-----实时项目---day06-------1. 获取窗口迟到的数据 2.双流join(inner join和left join(有点小问题)) 3 订单Join案例(订单数据接入到kafka,订单数据的join实现,订单数据和迟到数据join的实现)

    1. 获取窗口迟到的数据 主要流程就是给迟到的数据打上标签,然后使用相应窗口流的实例调用sideOutputLateData(lateDataTag),从而获得窗口迟到的数据,进而进行相关的计算,具体 ...

  5. spark join 广告用户特征 与广告特征的 join 拿到训练集

    spark join 广告特征做广播

  6. SQL Left Join, Right Join, Inner Join, and Natural Join 各种Join小结

    在SQL语言中,存在着各种Join,有Left Join, Right Join, Inner Join, and Natural Join等,对于初学者来说肯定一头雾水,都是神马跟神马啊,它们之间到 ...

  7. Mysql中natural join和inner join的区别

    假设有如下两个表TableA,TableB TableA TableB Column1 Column2 Column1 Column3 1 2 1 3 TableA的Column1列名和TableB的 ...

  8. MySQL基础之Natural Join用法

    Natural join即自然连接,natural join等同于inner join或inner using,其作用是将两个表中具有相同名称的列进行匹配 用https://www.w3resourc ...

  9. SQL Fundamentals || 多表查询(内连接,外连接(LEFT|RIGHT|FULL OUTER JOIN),自身关联,ON,USING,集合运算UNION)

    SQL Fundamentals || Oracle SQL语言 一.多表查询基本语法 在进行多表连接查询的时候,由于数据库内部的处理机制,会产生一些“无用”的数据,而这些数据就称为笛卡尔积. 多表查 ...

  10. left outer join preserving unmatched rows from the first table

    https://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqlj18922.html INNER JOIN operation Specifies a join ...

随机推荐

  1. 20165202 2017-2018-2 《Java程序设计》第1周学习总结

    20165202 2017-2018-2 <Java程序设计>第1周学习总结 教材学习内容总结 Ubuntu环境下安装JDK 简单Java程序编写 反编译器javap.exe Git安装及 ...

  2. LINUX系统中高级网络服务:Bond、Team和网桥

    Bond 一.什么是Bond bond就是将两块网卡虚拟链接成一块网卡的技术.通过bond技术让多块网卡看起来是一个单独的以太网接口设备并具有相同的ip地址. 二.为什么要配置Bond 通过网卡绑定技 ...

  3. win2008 服务器文件夹权限配置

    通过控制文件夹权限来提高站点的安全性. 这一篇权限设置包括二个方面,一个是系统目录.盘符的权限,一个是应用程序的上传文件夹权限设置. 系统目录 确保所有盘符都是NTFS格式,如果不是,可以用命令 co ...

  4. gradle-wrapper.properties中各属性的含义

    gradle-wrapper.properties中各属性的含义 1. gradle-wrapper.properties 每一个用gradle编译的工程,都会有一个gradle\wrapper目录. ...

  5. 《Drools7.0.0.Final规则引擎教程》第4章 4.4 LHS简介&Pattern

    LHS简介 在规则文件组成章节,我们已经了解了LHS的基本使用说明.LHS是规则条件部分的统称,由0个或多个条件元素组成.前面我们已经提到,如果没有条件元素那么默认就是true. 没有条件元素,官方示 ...

  6. Android性能优化系列之电量优化

    电量消耗的计算与统计是一件麻烦而且矛盾的事情,记录电量消耗本身也是一个费电量的事情,随着Android开的性能要求越来越高,电量的优化,也显得格外重要,一个耗电的应用,用户肯定会毫不犹豫的进行卸载,所 ...

  7. 单一功能学习——百度AI之身份证识别

    以下内容基本是从官方接口文档复制过来的,附带自己封装的代码 时间:2018年4月4日 一.导入工具包 使用maven依赖: <dependency> <groupId>com. ...

  8. iOS数组的去重,判空,删除元素,删除重复元素 model排序 等

    一: 去重 有时需要将NSArray中去除重复的元素,而存在NSArray中的元素不一定都是NSString类型.今天想了想,加上朋友的帮助,想到两种解决办法,先分述如下. 1.利用NSDiction ...

  9. 老男孩Linux运维期中架构

  10. python2 之 pyh2

    1.功能 pyh作爲基於python的簡易html生成庫,收到了廣大python愛好者(比如說我,當然其他人沒有調查過)的深切喜愛. 簡潔的行文風格繼承了python一貫的作風,可以讓你用簡單的Pyt ...