Oracle内连接、外连接、右外连接、全外连接小总结
数据库版本:Oracle 9i
表TESTA,TESTB,TESTC,各有A, B两列
|
A |
B |
|
001 |
10A |
|
002 |
20A |
|
A |
B |
|
001 |
10B |
|
003 |
30B |
|
A |
B |
|
001 |
10C |
|
004 |
40C |
连接分为两种:内连接与外连接。
A.内连接
内连接,即最常见的等值连接,例:
SELECT *
FROM TESTA,TESTB
WHERE TESTA.A=TESTB.A
结果
|
A |
B |
A |
B |
|
001 |
10A |
001 |
10B |
B.外连接
外连接分为左外连接,右外连接和全外连接。
1. 左外连接 left outer join 或者 left join
左外连接就是在等值连接的基础上加上主表中的未匹配数据,例:
SELECT *
FROM TESTA
LEFT OUTER JOIN TESTB
ON TESTA.A=TESTB.A
Oracle 支持另一种写法
SELECT *
FROM TESTA,TESTB
WHERE TESTA.A=TESTB.A(+)
结果:
|
A |
B |
A |
B |
|
001 |
10A |
001 |
10B |
|
002 |
20A |
三个表做左外连接
SELECT *
FROM TESTA
LEFT OUTER JOIN TESTB
ON TESTA.A=TESTB.A
LEFT OUTER JOIN TESTC
ON TESTA.A=TESTC.A
Oracle 支持的另外一种写法
SELECT *
FROM TESTA,TESTB,TESTC
WHERE TESTA.A=TESTB.A(+)
AND TESTA.A=TESTC.A(+)
结果:
|
A |
B |
A |
B |
A |
B |
|
001 |
10A |
001 |
10B |
001 |
10C |
|
002 |
20A |
2. 右外连接 right outer join 或者 right join
右外连接是在等值连接的基础上加上被连接表的不匹配数据
SELECT *
FROM TESTA
RIGHT OUTER JOIN TESTB
ON TESTA.A=TESTB.A
Oracle支持的另一种写法
SELECT *
FROM TESTA,TESTB
WHERE TESTA.A(+)=TESTB.A
结果:
|
A |
B |
A |
B |
|
001 |
10A |
001 |
10B |
|
003 |
30B |
3.全外连接 full outer join 或者 full join
全外连接是在等值连接的基础上将左表和右表的未匹配数据都加上
SELECT *
FROM TESTA
FULL OUTER JOIN TESTB
ON TESTA.A=TESTB.A
全外连接的等价写法,对同一表先做左连接,然后右连接
SELECT TESTA.*,TESTB.*
FROM TESTA
LEFT OUTER JOIN TESTB
ON TESTA.A=TESTB.A
UNION
SELECT TESTA.*,TESTB.*
FROM TESTB
LEFT OUTER JOIN TESTA
ON TESTA.A=TESTB.A
结果:
|
A |
B |
A |
B |
|
001 |
10A |
001 |
10B |
|
002 |
20A |
||
|
003 |
30B |
Oracle内连接、外连接、右外连接、全外连接小总结的更多相关文章
- 最常用SQL joins:内连接(交集)、左外连接、右外连接、左连接、右连接、全连接(并集),全外连接
1.内连接.两个表的公共部分用Inner join,Inner join是交集的部分. Select * from TableA A inner join TableB B on A.key=B.ke ...
- SQL 各种连接:内连接,外连接(左外,右外,完全外)
在讲述之前,假设有如下两个表EMP, DEPT, 并且他们数据如下:
- oracle 内连接(inner join)、外连接(outer join)、全连接(full join)
转自:https://premier9527.iteye.com/blog/1659689 建表语句: create table EMPLOYEE(EID NUMBER,DEPTID NUMBER,E ...
- oracle 内连接 左外连接 右外连接的用法,(+)符号用法
1. 内连接很简单 select A.*, B.* from A,B where A.id = B.id select A.*, B.* from A inner join B on A.id = B ...
- sql的交叉连接,内连接,左外连接,右外连接,全外连接总结
实践是最好的检验,一直都对这几个连接查询出来的结果有什么不同不大理解,然后自己放一块查询比较了一下,用结果来说话~ 先建两张表如下: t1: id name age 1 张三 18 2 李四 25 t ...
- 内连接、左外连接、右外连接、全外连接、交叉连接(CROSS JOIN)-----小知识解决大数据攻略
早就听说了内连接与外连接,以前视图中使用过.这次自考也学习了,只是简单理解,现在深入探究学习(由于上篇博客的出现)与实践: 概念 关键字: 左右连接 数据表的连接有: 1.内连接(自然连接): 只有两 ...
- Oracle 内连接和外连接
内连接用于返回满足连接条件的记录:而外连接则是内连接的扩展,它不仅会返回满足连接条件的所有记录,而且还会返回满足不满足连接条件的记录!从Oracle9i开始,可以在From 子句中指定连接语法.语法如 ...
- oracle 内连接、外连接、自然连接、交叉连接练习
oracle 内连接.外连接.自然连接.交叉连接练习 --查询员工信息 select * from emp; --查询部门信息 select * from dept; --需求:查询员工姓名.薪资和所 ...
- Oracle 左连接、右连接、全外连接、(+)号作用
分类: Oracle Oracle 外连接 (1)左外连接 (左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表都不加限制) 外连接(Outer ...
随机推荐
- x的x次幂的值为10,求x的近似值
public class Main { static double eps = 1e-7; public static void main(String[] args){ double l = 2,r ...
- 物流包裹一站式查询(TrackingMore)
快递查询接口 目前提供快递查询的接口平台有: Trackingmore 快递100 快递网 不同接口的区别: (1)Trackingmore支持380家快递公司,其中有55家为国内的快递,其余325家 ...
- JSP的三种注释方式
HTML注释(输出注释):指在客户端查看源代码时能看见注释.例如, <!-- this is an html comment.it will show up int the response. ...
- CSS中的url()到底要不要加引号
如:url(images/background.gif)和 url("images/background.gif") 从安全角度来讲是要加上的 否则容易被xss 因为"& ...
- CS:APP3e 深入理解计算机系统_3e MallocLab实验
详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取. ...
- Excel Microsoft.Jet.OLEDB.4.0 外部数据库驱动程序中(1)的意外错误
昨天更新系统的bug,据说是微软要搞事情啊 删除以下更新就行: win7 KB4041678 KB4041681 SERVER 2008 R2 KB ...
- java_web学习(三) eclipse_jsp学习
1.首先打开eclipse,新建一个Dynamac web project项目文件 2.在WebContent单击右键创建JSP File 3.过程 4.简单的jsp代码 运行结果: 5.导出war文 ...
- Machine Learning - week 4 - 习题
1. 第一个.,是对的. 第二个.结果只会认出是一类,如图:.但这里是为了举例子,实际上不会恰好是 1.而是选择最大概率表示的类别.所以是错误的. 第三个:所有基于 0,1 的逻辑方程都可以使用神经网 ...
- Gym 101673F Keeping On Track
原题传送门 题意:给定一颗n+1(n≤10000)个结点的树(当然有n条边辣),定义一个结点为critical,当且仅当除去这个点及与其相连的边后,所有不相连的结点对数量最多.现在保证有且仅有一个结点 ...
- bzoj 4605: 崂山白花蛇草水
Description 神犇Aleph在SDOI Round2前立了一个flag:如果进了省队,就现场直播喝崂山白花蛇草水.凭借着神犇Aleph的实 力,他轻松地进了山东省省队,现在便是他履行诺言的时 ...