The problem is you are using a hard join which will only return rows where
there are matching entries in both tables.  What you probably want is called
a left join, however you have a further complication.

You have to have an image row to have a image_data.Default_Img = 'Yes'.  So
this query is really designed to only return users who have default images
established (other images don't count either).  

Haven't tested this, but it reflects my understanding of your expectation
(haven't double checked syntax either, but you can at
http://www.mysql.com/doc/en/index.html);

SELECT * FROM user_data
left join image_data
on user_data.User_ID = image_data.User_ID
where image_data.Default_Img in ('Yes', '')
GROUP BY user_data.User_ID

hope this works for you, good luck,

Warren Vail


-----Original Message-----
From: Marc Greenstock [mailto:[EMAIL PROTECTED]
Sent: Tuesday, February 10, 2004 6:53 PM
To: [EMAIL PROTECTED]
Subject: [PHP] SQL help


Hi all here's my problem,

I have two tables: 'user_data' and 'image_data'

obviously user_data has all the user information and image_data has all the
image information

in image_data are the fields: Image_ID int(11), User_ID int(11) and
Default_Img enum('Yes','No'). Users can have as many images as they like,
but it is optional.

I want to select from user_data and image_data and get the results based
upon the rest of the query. The problem is my sql is only pulling out the
users with images and ignoring the rest

my sql looks like this:

SELECT * FROM user_data, image_data
WHERE user_data.User_ID = image_data.User_ID
AND image_data.Default_Img = 'Yes'
GROUP BY user_data.User_ID

thanks for your help.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to