Can someone tell me why this query works...
SELECT UserKey
FROM(
 SELECT UserKey, Count(GiftKey) Gifts
 FROM Gift
 Group BY UserKey
) GC
WHERE GC.Gifts >= 3



And this one doesn't?

SELECT UserKey, UserID,
FROM User
WHERE UserKey IN
(SELECT UserKey
 FROM(
   SELECT UserKey, Count(GiftKey) Gifts
   FROM Gift
   Group BY UserKey
 ) GC
 WHERE GC.Gifts >= 3
)


In case you need some back ground and want to know what I eventually want to get read on...

I have a DB of Users of my wish list site.  The tables I have are
User ----> info about the users   UserKey is the key
Gift ----> list of gifts each user has on their wish list foreign key is UserKey
Event  --->gift giving events for users.   foreign key is UserKey
Emails ----> email addresses users have sent a message to about their wish list. UserKey is the foreign key here too.

The relationship between user and the other 3 tables is a 1 to many. I have the following query that I need to adjust some.

SELECT u.UserKey, UserID,
Count(distinct g.GiftKey) gifts, Count(distinct ev.EventKey) events, Count(distinct e.Email) Emails
FROM User u NATURAL LEFT JOIN Gift g
LEFT JOIN Emails e ON e.Userkey = u.UserKey
LEFT JOIN GiftGivingEvent ev ON ev.UserKey = u.UserKey
GROUP BY UserID

What I really want is only the users where the gifts count is > 3, the Event count is > 1, the Emails count is > 5 and and only count emails if e.Verified is = 1

I am pretty sure I have to write code to do the last part with the emails but is there a way to do the part with the gift and event counts?

--
Chris W

Gift Giving Made Easy
Get the gifts you want & give the gifts they want
http://thewishzone.com


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

Reply via email to