oracle的full join,谈谈oracle里的join、left join、right join、full join-版本2

本文详细介绍了Oracle数据库中leftjoin、rightjoin、innerjoin和fulljoin的不同用途和示例,重点讲解了它们在查询时返回数据的区别,以及如何根据业务场景选择合适的连接方式。涵盖了SQL查询语句和条件筛选,适合数据库管理和查询优化者阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5268f80b9b1e01f982625ef6fac83ca1.png

--1.left join  左表为主表,左表返回全部数据,右表只返回与左表相匹配的数据

select   t1.fpdm,t1.fphm ,t1.zjr,t1.zjsj,t1.zjjx,t1.zjje,t1.zflx,t1.zfid,t2.fpdm,t2.fphm,t2.zflx  from yw_zjfpjl t1

left join xxdzmx t2  on t2.fpdm||t2.fphm=t1.fpdm||t1.fphm

select   t1.fpdm,t1.fphm ,t1.zjr,t1.zjsj,t1.zjjx,t1.zjje,t1.zflx,t1.zfid,t2.fpdm,t2.fphm,t2.zflx  from yw_zjfpjl t1 , xxdzmx t2  where t2.fphm=t1.fphm(+)

--2.right join 右表为主表,右表返回全部数据,左表只返回与右表相匹配的数据

select   t1.fpdm,t1.fphm ,t1.zjr,t1.zjsj,t1.zjjx,t1.zjje,t1.zflx,t1.zfid,t2.fpdm,t2.fphm,t2.zflx  from yw_zjfpjl t1

right join xxdzmx t2  on t2.fpdm||t2.fphm=t1.fpdm||t1.fphm

--3.inner join  只返回两表相匹配的数据

select   t1.fpdm,t1.fphm ,t1.zjr,t1.zjsj,t1.zjjx,t1.zjje,t1.zflx,t1.zfid, t2.fphm,t2.fpdm,t2.zflx  from yw_zjfpjl t1

inner join xxdzmx t2  on t2.fphm||t2.fpDm = t1.fphm||t1.fpdm

where t2.fphm is not null and t2.zflx=‘0‘ and t1.zflx=‘0‘ and TO_CHAR(t1.zjsj,‘YYYY-MM‘)=‘2016-10‘  and substr(t2.dzyf, 0, 4)||‘-‘||substr(t2.dzyf, 5, 2)=‘2016-10‘;

--4.full join

--4.1全部结果集  106

select   t1.fpdm,t1.fphm ,t1.zjr,t1.zjsj,t1.zjjx,t1.zjje,t1.zflx,t1.zfid,t2.fpdm,t2.fphm,t2.zflx  from yw_zjfpjl t1

full join xxdzmx t2  on t2.fpdm=t1.fpdm and t2.fphm=t1.fphm

--4.2右边有左边没有   10-1=9

select   t1.fpdm,t1.fphm ,t1.zjr,t1.zjsj,t1.zjjx,t1.zjje,t1.zflx,t1.zfid,t2.fphm,t2.fpdm,t2.zflx,t2.dzyf  from yw_zjfpjl t1

full join xxdzmx t2  on t2.fphm||t2.fpDm = t1.fphm||t1.fpdm

where t2.fphm is not  null and t2.zflx =0 and substr(t2.dzyf,1 ,4)||‘-‘||substr(t2.dzyf,5,2)=‘2016-10‘

--4.3左边有右边没有   97-1=96

select   t1.fpdm,t1.fphm ,t1.zjr,t1.zjsj,t1.zjjx,t1.zjje,t1.zflx,t1.zfid,t2.fphm,t2.fpdm,t2.zflx  from yw_zjfpjl t1

full join xxdzmx t2  on t2.fphm||t2.fpDm = t1.fphm||t1.fpdm

where  (t1.zflx=‘0‘ and TO_CHAR(t1.zjsj,‘YYYY-MM‘)=‘2016-10‘  );

--4.4左边有右边没有  右边有左边没有  (97-1)+(10-1)=105

select   t1.fpdm,t1.fphm ,t1.zjr,t1.zjsj,t1.zjjx,t1.zjje,t1.zflx,t1.zfid,t2.fphm,t2.fpdm,t2.zflx,t2.dzyf  from yw_zjfpjl t1

full join xxdzmx t2  on t2.fphm||t2.fpDm = t1.fphm||t1.fpdm

where (t2.fphm is not  null and t2.zflx =‘0‘ and substr(t2.dzyf,1 ,4)||‘-‘||substr(t2.dzyf,5,2)=‘2016-10‘) or (t1.zflx=‘0‘ and TO_CHAR(t1.zjsj,‘YYYY-MM‘)=‘2016-10‘  );

谈谈oracle里的join、left join、right join、full join-版本2

标签:substr   --   sub   rom   版本   str   acl   select   oracle

1428d0e076c3959ab11d28a39bc84fab.png

5268f80b9b1e01f982625ef6fac83ca1.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://www.cnblogs.com/iyoume2008/p/6407711.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值