谈谈oracle里的joinleft joinright joinfull join-版本2
Posted ORACLE-fans
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谈谈oracle里的joinleft joinright joinfull join-版本2相关的知识,希望对你有一定的参考价值。
--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里的joinleft joinright joinfull join-版本2的主要内容,如果未能解决你的问题,请参考以下文章
Zend Db Select 中的 GROUP_CONCAT 和 JOINLEFT
SQL表连接查询(inner joinfull joinleft joinright join)
通俗易懂的joinleft joinright joinfull joincross join