Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> Need another pair(s) of eyes
Hi,
or probably more accurately a few more brains.
I think the following are equivalent:
do something (select, update, delete)
where < some predicates>
and exists ( select 'x' from tableA, tableB
where < some regular predicates > and < some correlated predicates >
UNION ALL
select 'x' from tableC, tableD (could be same as A and/or B)
where < some regular predicates > and < some correlated predicates >
)
and
do something (select, update, delete)
where < some predicates>
and ( exists ( select 'x' from tableA, tableB
where < some regular predicates > and < some correlated predicates > )
OR exists (
select 'x' from tableC, tableD (could be same as A and/or B)
where < some regular predicates > and < some correlated predicates > )
)
Likewise for not exists:
do something (select, update, delete)
where < some predicates>
and not exists ( select 'x' from tableA, tableB
where < some regular predicates > and < some correlated predicates >
UNION ALL
select 'x' from tableC, tableD (could be same as A and/or B)
where < some regular predicates > and < some correlated predicates >
)
vs.
do something (select, update, delete)
where < some predicates>
and not exists ( select 'x' from tableA, tableB
where < some regular predicates > and < some correlated predicates > )
AND not exists (
select 'x' from tableC, tableD (could be same as A and/or B)
where < some regular predicates > and < some correlated predicates > )
Can someone think of some condition(s), examples where they would not be equivalent?
Regards
Wolfgang Breitling
Centrex Consulting Corporation
www.centrexcc.com
AIM: WBreitling
-- http://www.freelists.org/webpage/oracle-lReceived on Thu Jul 26 2007 - 05:21:47 CDT
![]() |
![]() |