An SQL question about using multiple tables

Sandip Bhattacharya <[email protected]>
Newsgroups gmane.user-groups.linux.delhi.devel,gmane.user-groups.linux.india.programmers
Organization Puroga Technologies Pvt. Ltd.
Message-ID <[email protected]>
[Crossposted. Sorry.]

Background:
I have one master table A, and other supplementary tables B,C and D such that   
for every row of A there can be one or more corresponding rows in B,C,D. 
There is another supplementary table E with which A has a one-to-one 
relationship.

Problem:
Given three search criteria resulting in AB, AC, and AD respectively, I need 
to display results so that I get ( AB intersection AC intersection AD) and I 
need to display unique rows of A on teh screen joined with corresponding row 
of E. A typical multiple parameter search operation in any database with 
normalized tables.

Constraints:
Am using (sigh) mysql 3.23. No subqueries, no INTERSECT.


What I have tried till now:
Creating three temporary tables for AB, AC and AD respectively. Now how do I 
find out the intersection of these? Stuck there.


The SQL with subqueries will probably be something like:
============================================
select A.*, E.* from A inner join E on A.id=E.parentid 
   where 
      A.id in (select distinct A.id from A inner join B on A.id=B.parentid 
                 where B.name='XXX')
  and 
      A.id in (select distinct A.id from A inner join C on A.id=C.parentid 
                 where C.name='YYY')
  and 
      A.id in (select distinct A.id from A inner join D on A.id=D.parentid 
                 where D.name='ZZZ');
===============================================

This is most probably impossible to do in one statement in mysql. But how do I 
do it at all? Any pointers willl be nice. Excuse me if I am doing something 
terribly wrong. This is the first time I am getting my hands really dirty 
with SQL.

- Sandip

-- 
Sandip Bhattacharya    *    Puroga Technologies   *     sandip-/[email protected]
Work: http://www.puroga.com        *         Home: http://www.sandipb.net

PGP/GPG Signature: 51A4 6C57 4BC6 8C82 6A65 AE78 B1A1 2280 A129 0FF3

Old Grandad is dead but his spirits live on.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.