Oracle内连接、左外连接、右外连接和全外连接
来源:互联网 发布:趋势分析软件 编辑:程序博客网 时间:2024/05/17 05:59
转载自http://blog.csdn.net/soandyue/article/details/6407576
表TESTA,TESTB,TESTC,各有A, B两列
*******TESTA*******
A B
001 10A
002 20A
001 10A
002 20A
*********TESTB******
A B
001 10B
003 30B
********TESTC*******
A B
001 10C
004 40C
连接分为两种:内连接与外连接。
A.内连接
内连接,即最常见的等值连接,例:
SELECT *
FROM TESTA,TESTB
WHERE TESTA.A=TESTB.A
结果
A B A B
001 10A 001 10B
A B A B
001 10A 001 10B
B.外连接
(1)使用外连接可以查询不满足连接条件的数据
(2)外连接的符号是(+)
外连接分为左外连接,右外连接和全外连接。
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 10B
三个表做左外连接
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
右外连接是在等值连接的基础上加上被连接表的不匹配数据
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
全外连接是在等值连接的基础上将左表和右表的未匹配数据都加上
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内连接、左外连接、右外连接和全外连接
- 内连接,外连接,左连接,右连接,全连接,内连接,交叉连接,自连接
- 内连接,外连接,左连接,右连接,全连接,内连接,交叉连接,自连接
- 左外连接,右外连接,全连接,内连接。
- 左外连接、右外连接、内连接、全连接
- 左外连接、右外连接、内连接、全连接
- Oracle 的四种连接-左外连接、右外连接、内连接、全外连接
- Oracle 的四种连接-左外连接、右外连接、内连接、全连接
- Oracle 的四种连接-左外连接、右外连接、内连接、全连接
- 内连接、外连接[左连接、右连接、全连接]、交叉连接、自连接
- 【Oracle】多表连接查询——内连接、左连接、右连接、全连接(外连接)、完全连接
- oracle中emp表的内连接,左外连接,右外连接,全外连接
- oracle中emp表的内连接,左外连接,右外连接,全外连接
- Oracle的内连接、左外连接、右外连接及全外连接
- Oracle的内连接、左外连接、右外连接及全外连接
- Oracle的内连接、左外连接、右外连接及全外连接
- Oracle内连接、左外连接、右外连接、全外连接小总结
- 无题
- linux oops产生过程之dump_backtrace
- HDU 2653 BFS+优先队列
- 将远程SQL Server 数据库中表数据导入本地数据库相应的表
- VC 下拉框 CComboBox
- Oracle内连接、左外连接、右外连接和全外连接
- 蹦蹦跳跳
- ListView中选中item时去掉高亮效果
- make: *** [obj/local/armeabi/objs-debug/cocosdenshion_static/SimpleAudioEngine.o] Error 1
- VBA 出现400错误
- uva 10128 - Queue(dp)
- 计算1-10000所有数的和
- PDO的那些事
- .NET Chart(2)---创建最基本的图表(代码方式添加数据)