You're on the right track with LEFT JOIN.  Just continue the thought...
Try:
SELECT A_data, B_data, C_data 
FROM A LEFT JOIN B ON A.A_ID = B.B_ID LEFT JOIN C ON A.A_ID = C.C_ID
WHERE A.A_ID = 4;

> -----Original Message-----
> From: sean peters [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, October 01, 2003 12:07 PM
> To: [EMAIL PROTECTED]
> Subject: How to write this query
> 
> 
> I've run into a situation where i dont know how to best write 
> a query. For a 
> base example, consider these 3 tables:
> 
> CREATE TABLE A (
>       A_ID    INT NOT NULL PRIMARY KEY,
>       A_data  text
> );
> 
> CREATE TABLE B (
>       B_ID    INT NOT NULL PRIMARY KEY,
>       A_ID    INT NOT NULL,
>       B_data  text
> );
> 
> CREATE TABLE C (
>       C_ID    INT NOT NULL PRIMARY KEY,
>       A_ID    INT NOT NULL,
>       C_data  text
> );
> 
> So ive been running a query like:
> SELECT A_data, B_data, C_data FROM A, B, C
> WHERE A.A_ID = B.B_ID
> AND A.A_ID = C.C_ID
> AND A.A_ID = 4;
> 
> What i really want is to get the A_data from A, and if there 
> are cooresponding 
> records in B and/or C, get B_data and/or C_data, respectively.
> 
> This works fine if there are cooresponding records in tables 
> B and C for each 
> record in A, but if not, this returns nothing.
> 
> So, short of querying each table, i cant come up with a good 
> solution to my 
> problem.
> 
> If there were only 2 tables, a LEFT JOIN would work fine, but 
> both B and C 
> want to be left joined to A, which i dont know how to do.
> 
> thanks
> sean peters
> [EMAIL PROTECTED]
> 
> 
> ---
> mysql, query
> 
> -- 
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    
> http://lists.mysql.com/mysql?> [EMAIL PROTECTED]
> 
> 


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to