Oracle 的 外关联条件 作用
2018-01-16 15:31
260 查看
oracel实际开发中,经常遇到这样的状况,两个表作外关联时,同时想对被关联表进行条件限制,容易出错,故在此总结下。
实例:
SQL1:
SELECT Count(*)
FROM econtract.cm_contracts_single_v smcon,
base.bas_regions_v reg ,
base.bas_regions_v Off
WHERE reg.region_id(+) = smcon.region
AND smcon.office = off.region_id(+)
AND
reg.enable_flag(+) = 'Y'
AND off.enable_flag(+) = 'Y'
AND off.region_type(+) = 3
AND reg.region_type(+) = 2
;
SQL2:
SELECT Count(*)
FROM econtract.cm_contracts_single_v smcon,
base.bas_regions_v reg ,
base.bas_regions_v Off
WHERE reg.region_id(+) = smcon.region
AND smcon.office = off.region_id(+)
AND
reg.enable_flag= 'Y'
AND off.enable_flag = 'Y'
AND off.region_type = 3
AND reg.region_type = 2
;
加粗部分为被外关联表的过滤条件。
二者的区别一看 就是过滤条件的写法不一样。
实质区别为:SQL1 不影响主表的查询总数:是对被关联表自身数据进行条件过滤.
SQL2 影响主表的查询总数:是对主表与外表作关联后的数据 进行条件过滤.
实例:
SQL1:
SELECT Count(*)
FROM econtract.cm_contracts_single_v smcon,
base.bas_regions_v reg ,
base.bas_regions_v Off
WHERE reg.region_id(+) = smcon.region
AND smcon.office = off.region_id(+)
AND
reg.enable_flag(+) = 'Y'
AND off.enable_flag(+) = 'Y'
AND off.region_type(+) = 3
AND reg.region_type(+) = 2
;
SQL2:
SELECT Count(*)
FROM econtract.cm_contracts_single_v smcon,
base.bas_regions_v reg ,
base.bas_regions_v Off
WHERE reg.region_id(+) = smcon.region
AND smcon.office = off.region_id(+)
AND
reg.enable_flag= 'Y'
AND off.enable_flag = 'Y'
AND off.region_type = 3
AND reg.region_type = 2
;
加粗部分为被外关联表的过滤条件。
二者的区别一看 就是过滤条件的写法不一样。
实质区别为:SQL1 不影响主表的查询总数:是对被关联表自身数据进行条件过滤.
SQL2 影响主表的查询总数:是对主表与外表作关联后的数据 进行条件过滤.
相关文章推荐
- 有2个表,结构相似,有一个字段关联,现在怎么把A表的数据添加到B表中,条件是A表不在B表的数据?? 请各位高手多多指点,是oracle的数据库
- Oracle外连接中对非连接条件使用(+)的作用
- oracle 两表关联时,年月条件的写法引起的巨大性能的差异
- Oracle_6 约束条件
- oracle 10g的服务作用
- sqlserver 中 where 条件和 join 条件的作用比较
- 能使 Oracle 索引失效的七大限制条件
- oracle外键关联而无法删除数据
- oracle启用和禁用约束条件等
- MySQL与Oracle 差异比较之四条件循环语句
- 使用xshell进行导出oracle的dmp文件,加查询条件
- Oracle 左连接、右连接、全外连接、(+)号作用
- Oracle 11gR2 Patchset 不同文件作用 说明
- oracle 中如何在使用sum或其他聚合函数中,select查询条件处如何使用判断条件
- Oracle通用函数和条件函数
- oracle 两表关联的update操作
- ORACLE序列的作用
- oracle 条件语句的写法
- ORACLE约束:主键,外键,非空,唯一,条件
- 工作流Activiti的学习总结(一)安装条件以及各步骤的作用以及不同环境需要lib包