Java Mailing List Archive

http://www.dba.5341.com/

Home » Home (12/2007) » oracle-l »

Need another pair(s) of eyes

Wolfgang Breitling

2007-07-26

Replies:

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-l


©2008 dba.5341.com - Jax Systems, LLC, U.S.A.