Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Query returns different rows with new syntax and old (+) syntax
Hi,
I need some help. A developer wrote this query based on the new 9i left
outer join
syntax, and now realizes that this is to run on an earlier version of Oracle
with the
(+) syntax. We tried rewrting the query, but it is returning a different row
set:
Any help appreciated. Please reply to steven.yee_at_team.telstra.com Thanks in advance.
Regards,
Steven
SQL Statement :
SELECT A.ACCT_NUM,
AT.OTHER_NAMES, AT.LAST_NAME, EM.ACCOUNT_NUM, AT.USER_ID, B2.PASSWORD, B2.IS_PRIMARY, UT1.TIER_CODE, P.USAGEALLOWED
ACCT_NUM OTHER_NAMES LAST_NAME ACCOUNT_NUM USER_ID PASSWORD IS_PRIMARY TIER_CODE USAGEALLOWED
"1052155 " "STEVEN" "YEE"
"1052155" "backlash" "crap " "Y"
"adm " 10000
"1052155 " "STEVEN" "YEE"
"1052155" "sifu" "crap " "N"
"adm "
"1052155 " "STEVEN" "YEE"
"1052155" "mryoda" "crap " "N"
"adm "
"1052155 " "STEVEN" "YEE"
"1052155" "freefall" "crap " "N"
"adm "
The rewritten query:
SQL Statement :
SELECT A.ACCT_NUM,
AT.OTHER_NAMES, AT.LAST_NAME, EM.ACCOUNT_NUM, AT.USER_ID, B2.PASSWORD, B2.IS_PRIMARY, UT1.TIER_CODE, P.USAGEALLOWED FROM BIDUSERS B1, ACCOUNTS A, ACCT_TAB AT, EMAIL_NOTIFICATION_DISABLED EM, BIDUSERS B2, USERTIER UT1, USERTIER UT2, PLAN P
AND (B2.LOGIN_ID = RPAD(AT.USER_ID, 8) AND B2.ACCT_NUM = B1.ACCT_NUM) AND (RPAD(AT.USER_ID, 8)=UT1.LOGIN_ID(+) AND UT1.TIER_CODE = 'adm') AND (RPAD(AT.USER_ID, 8)=UT2.LOGIN_ID(+) AND B2.IS_PRIMARY = 'Y')AND RTRIM(UT2.TIER_CODE) = P.TIER_CODE(+)
AND B1.LOGIN_ID = 'backlash' AND B1.IS_SUBSCRIBER = 'Y' AND B1.LOGIN_ALLOWED = 'Y'
ACCT_NUM OTHER_NAMES LAST_NAME ACCOUNT_NUM USER_ID PASSWORD IS_PRIMARY TIER_CODE USAGEALLOWEDReceived on Fri Nov 15 2002 - 04:04:38 CST
"1052155 " "STEVEN" "YEE"
"1052155" "backlash" "crap " "Y"
"adm " 10000