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

mac2022-06-30  107

--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.fphmselect   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.fpdmwhere 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全部结果集  106select   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=9select   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.fpdmwhere 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=96select   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.fpdmwhere  (t1.zflx='0' and TO_CHAR(t1.zjsj,'YYYY-MM')='2016-10'  );--4.4左边有右边没有  右边有左边没有  (97-1)+(10-1)=105select   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.fpdmwhere (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'  );

转载于:https://www.cnblogs.com/iyoume2008/p/6407711.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)