【oracle】函数===Oracle关联加号(+)

假设有 
a表        b表
id           id
1             1
2             2
3             3
4 
希望出来结果 
a.id b.id 
1      1 
2      2 
3      3 
4 
===============================================
用left join 的
SQL code
select a.id,b.id form. a left jion b on a.id=b.id
用(+)的
SQL code
select a.id,b.id form. a ,b where a.id=b.id(+)
===============================================
用(+)的语法简洁,容易读懂,但只是ORACLE支持,LEFT JOIN是通用的,其它没有差别
select * from a, b where a.id = b.id; 


外连接: 
除了显示匹配相等连接条件的数据外,还可以显示某一个表中无法匹配相等连接条件的记录! 
------------------------------------------------ 
1) 左条件(+) = 右条件 
左条件所在的表必须严格进行相等连接条件的匹配,而右条件所在的表除了匹配相等连接条件外,还可以显示无法匹配连接条件的数据! 
也称为右外连接.     
-------------------------------- 
可以用下列语句取代: 
SELECT...FROM 表1 RIGHT OUTER JOIN 表2 ON 条件; 
2) 左条件 = 右条件(+) 
右条件所在的表必须严格进行相等连接条件的匹配,而左条件所在的表除了匹配相等连接条件外,还可以显示无法匹配连接条件的数据! 
也称为左外连接. 
-------------------------------- 
可以用下列语句取代: 
SELECT...FROM 表1 LEFT OUTER JOIN 表2 ON 条件; 

REM 除了相等连接之外,显示没有员工的部门信息. 
SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO(+) = DEPT.DEPTNO; 
SELECT * FROM EMP RIGHT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO; 
REM 除了相等连接之外,显示没有部门的员工信息. 
SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO(+); 
SELECT * FROM EMP LEFT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值