数据库版本:Oracle 9i
表TESTA,TESTB,TESTC,各有A, B两列
连接分为两种:内连接与外连接。
A.内连接
内连接,即最常见的等值连接,例:
SELECT *
FROM TESTA,TESTB
WHERE TESTA.A=TESTB.A
结果
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
|
转自:http://www.blogjava.net/hello-yun/archive/2011/04/08/347890.html
分享到:
相关推荐
oracle 左连接 右连接 学习 精选资料
Oracle左连接,右连接.doc Oracle左连接,右连接.doc
左外连接右外连接,内连接区别,oracle的开发中很需要的,大家看看吧
Oracle左(外)、右(外)、全(外)、(内)连接语法与SQL标准的比较
数据库左右连接方法详细讲解,文档内列举了实例。很清晰
Oracle连接有多中,我是在平常开发项目过程中用到的Oracle左连接进行了简单的阐述。
oracle数据库表左连接右连接全连接的认识
Oracle左连接返回多条记录中一条记录的查询语句,更具指定条件分组排序,返回各组中第一条记录
sql左连接,右连接,内连接,全连接详细讲解
NULL 博文链接:https://nickevin.iteye.com/blog/2004401
Oracle+表连接方式(内连接-外连接-自连接)+详解
错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...
JAVA 使用数据库连接池连接Oracle数据库,全代码,附加详细说明
强制释放Oracle数据连接方案,经常会遇到数据库无法连接,发现是连接数超过限制,如何能够看到默认的数据库连接数量限制呢,如何能够增大数量限制呢? .......
NULL 博文链接:https://201307125158.iteye.com/blog/2115424
本章主要讲解oracle客户端连接oracle效劳器,主要有以下内容: 1.配置本地net效劳名配置 2.用sqlplus连接; 3.用toad连接; 一、配置本地net效劳名 首先说明我们的效劳器的IP为60.220.246.53,oracle的SID为czdb。 ...
Oracle最大连接数
内连接 自然连接 左外连接 右外连接 笛卡尔连接 索引连接 嵌套连接
C#中连接oracle连接方法C#中连接oracle连接方法C#中连接oracle连接方法C#中连接oracle连接方法C#中连接oracle连接方法C#中连接oracle连接方法
理解oracle中的外连接,希望对下载的人有帮助