数据库版本: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左连接,右连接.doc Oracle左连接,右连接.doc
oracle 左连接 右连接 学习 精选资料
Oracle左(外)、右(外)、全(外)、(内)连接语法与SQL标准的比较
Oracle+表连接方式(内连接-外连接-自连接)+详解
错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...
左外连接右外连接,内连接区别,oracle的开发中很需要的,大家看看吧
oracle数据库表左连接右连接全连接的认识
Oracle连接有多中,我是在平常开发项目过程中用到的Oracle左连接进行了简单的阐述。
强制释放Oracle数据连接方案,经常会遇到数据库无法连接,发现是连接数超过限制,如何能够看到默认的数据库连接数量限制呢,如何能够增大数量限制呢? .......
JAVA 使用数据库连接池连接Oracle数据库,全代码,附加详细说明
本章主要讲解oracle客户端连接oracle效劳器,主要有以下内容: 1.配置本地net效劳名配置 2.用sqlplus连接; 3.用toad连接; 一、配置本地net效劳名 首先说明我们的效劳器的IP为60.220.246.53,oracle的SID为czdb。 ...
Oracle最大连接数
理解oracle中的外连接,希望对下载的人有帮助
C#中连接oracle连接方法C#中连接oracle连接方法C#中连接oracle连接方法C#中连接oracle连接方法C#中连接oracle连接方法C#中连接oracle连接方法
oracle遇到连接空闲例程时的做法
oracle数据库连接工具oracle数据库连接工具oracle数据库连接工具
Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具...
word文件,深入讲解Oracle的外连接查询
oracle数据库连接包 oracle数据库连接包 java的
oracle修改最大连接数