Oracle 外连接和(+)号的用法

来源:互联网 发布:iphone数据恢复教程 编辑:程序博客网 时间:2024/05/29 15:27

表 pandaa pandab
id name id job parent_id
1 panda 1 吃 11
2 kongfu 2 喝 12
3 nuddle 4 睡 13

**

  1. 左外链接- 左边表不限制 右边表等值连接

**:
左面表所有数据那过来,右面表按id等值链接,没值的显示空值
select * from pandaa left outer join pandab on pandaa.id = pandab.id
等价于
select * from pandaa ,pandab where pandaa.id=pandab.id(+)
这里写图片描述
**

  1. 右外链接-右边表不限制 左边表等值连接

**:解释同上
select * from pandaa right outer join pandab on pandaa.id = pandab.id
等价于
select * from pandaa ,pandab where pandaa.id (+)= pandab.id
这里写图片描述
**

  1. 完全链接-两边表都不限制

**:左右两个表所有数据拼接起来
select * from pandaa full join pandab on pandaa.id = pandab.id
这里写图片描述
**

  1. 内连接-等值连接

**:等值链接
select * from pandaa inner join pandab on pandaa.id = pandab.id
这里写图片描述
tip:(+)使用受限
1.(+)操作符只能出现在WHERE子句中,并且不能与OUTER JOIN语法同时使用。
2. 当使用(+)操作符执行外连接时,如果在WHERE子句中包含有多个条件,则必须在所有条件中都包含(+)操作符。
3.(+)操作符只适用于列,而不能用在表达式上。
4.(+)操作符不能与OR和IN操作符一起使用。
5.(+)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接。

原创粉丝点击