======原始问题======
我在常量上有多个外部联接,如下所示:
select .. from CLAS MDP, CLAS ORG_CNTRY, CLAS BEN_CNTRY
AND ORG_CNTRY.LAS_ID(+) = 'COUNTRY_LOOKUP'
AND ORG_CNTRY.CB_DT = MDP.CB_DT
AND BEN_CNTRY.LAS_ID(+) = 'COUNTRY_LOOKUP'
AND BEN_CNTRY.CB_DT = MDP.CB_DT
上面的查询是否等同于下面的查询? 请指教。
select ... from
CLAS MDP left join CLAS ORG_CNTRY on ORG_CNTRY.LAS_ID = 'COUNTRY_LOOKUP' left
join CLAS BEN_CNTRY on BEN_CNTRY.LAS_ID = 'COUNTRY_LOOKUP' where ORG_CNTRY.CB_DT
= MDP.CB_DT and BEN_CNTRY.CB_DT = MDP.CB_DT
======后续问题=======
@ Used_By_Already,@ Gordon Linoff感谢您的回复。
但是,我的实际查询只不过是我最初发布的内容。 它像这样:
MDP.CLAS_ID = 'DIS_PARAMETERS'
AND MDP.CB_DT = <>
AND ACCT.ACCT_NO = TXN.ACCT_NO
AND MDP.CTRY_CD = TXN.REC_CTRY_CD
AND TXN.CB_DT BETWEEN ACCT.START_DT and ACCT.END_DT
AND ORG_CNTRY.CLAS_ID(+) = 'COUNTRY_LOOKUP'
AND ORG_CNTRY.CB_DT = MDP.CB_DT
AND BEN_CNTRY.CLAS_ID(+) = 'COUNTRY_LOOKUP'
AND BEN_CNTRY.CB_DT = MDP.CB_DT
AND TXN.SEND_CTRY_CD = ORG_CNTRY.CLAS_SCHM_CD(+)
AND TXN.RCIP_CTRY_CD = BEN_CNTRY.CLAS_SCHM_CD(+)
可以这样重写吗? 请指教。
select ...
from
CLAS MDP left join CLAS ORG_CNTRY on ORG_CNTRY.CB_DT = MDP.CB_DT
AND ORG_CNTRY.LAS_ID = 'COUNTRY_LOOKUP'
right join ACCT_TRAN TXN on ORG_CNTRY.CLAS_SCHM_CD = TXN.SEND_CTRY_CD
left join CLAS BEN_CNTRY on BEN_CNTRY.CB_DT = MDP.CB_DT
AND BEN_CNTRY.LAS_ID = 'COUNTRY_LOOKUP'
right join ACCT_TRAN TXN on BEN_CNTRY.CLAS_SCHM_CD = TXN.RCIP_CTRY_CD