gpt4 book ai didi

oracle join on 数据过滤问题

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章oracle join on 数据过滤问题由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

代码如下

select a.f_username  from  (  SELECT /*+parallel(gu,4)*/distinct gu.f_username  FROM t_base_succprouser gu  where gu.f_expectenddate > (select trunc(sysdate,'Y')FROM DUAL)  and gu.f_lotid=1  and gu.f_playid=4  and gu.f_paymoney>=1500  ) A  left join  (  select  from t_base_vip_customes  and ((vu.f_passeddate is null ) or (vu.f_passeddate > trunc(sysdate,'Y') ))  and ((vu.f_lotid is null ) or (vu.f_lotid=1))  and ((vu.f_playid is null ) or (vu.f_playid=4))  and ((vu.f_condtionid is null ) or (vu.f_condtionid=3))  )B  on A.f_username=B.f_usernam  where b.f_username is null  。

采用下面的语句 只能查出部分用户  。

复制代码代码如下

SELECT /*+parallel(gu,4)*/distinct gu.f_username  FROM t_base_succprouser gu  left join t_base_vip_customes VU on gu.f_username=vu.f_username  gu.f_expectenddate > (select trunc(sysdate,'Y')FROM DUAL)  and gu.f_lotid=rec_viplotplay.f_lotid  and gu.f_playid=rec_viplotPlay.f_Playid  and gu.f_paymoney>=rec_viplotPlay.F_Conditon_ValuesA  and ((vu.f_passeddate is null ) or (vu.f_passeddate > trunc(sysdate,'Y') ))  and ((vu.f_lotid is null ) or (vu.f_lotid=rec_viplotplay.f_lotid))  and ((vu.f_playid is null ) or (vu.f_playid=rec_viplotPlay.f_Playid))  and ((vu.f_condtionid is null ) or (vu.f_condtionid=rec_viplotPlay.F_CondtionID))  and vu.f_username is null  。

执行计划:  。

复制代码代码如下

SELECT STATEMENT, GOAL = ALL_ROWS  HASH UNIQUE  NESTED LOOPS OUTER  PARTITION RANGE ALL  TABLE ACCESS FULL Object name=T_BASE_SUCCPROUSER  VIEW  FILTER  TABLE ACCESS FULL Object name=T_BASE_VIP_CUSTOMES  FAST DUAL  。

后来改成了下面就能全部查出来了  。

复制代码代码如下

SELECT /*+parallel(gu,4)*/distinct gu.f_username  FROM t_base_succprouser gu  left join t_base_vip_customes VU on gu.f_username=vu.f_username  and ((vu.f_passeddate is null ) or (vu.f_passeddate > trunc(sysdate,'Y') ))  and ((vu.f_lotid is null ) or (vu.f_lotid=rec_viplotplay.f_lotid))  and ((vu.f_playid is null ) or (vu.f_playid=rec_viplotPlay.f_Playid))  and ((vu.f_condtionid is null ) or (vu.f_condtionid=rec_viplotPlay.F_CondtionID))  where gu.f_expectenddate > (select trunc(sysdate,'Y')FROM DUAL)  and gu.f_lotid=rec_viplotplay.f_lotid  and gu.f_playid=rec_viplotPlay.f_Playid  and gu.f_paymoney>=rec_viplotPlay.F_Conditon_ValuesA  and vu.f_username is null  执行计划:  SELECT STATEMENT, GOAL = ALL_ROWS  HASH UNIQUE  FILTER  NESTED LOOPS OUTER  TABLE ACCESS BY GLOBAL INDEX ROWID Object name=T_BASE_SUCCPROUSER  INDEX RANGE SCAN Object name=IX_BASE_PROUSER_LOWEX  FAST DUAL  VIEW  TABLE ACCESS FULL Object name=T_BASE_VIP_CUSTOMES  。

oracle 不懂先把数据给过滤掉然后在来连接吗? 太笨了!而且这样把符合条件的数据也过滤掉了 。

最后此篇关于oracle join on 数据过滤问题的文章就讲到这里了,如果你想了解更多关于oracle join on 数据过滤问题的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com