I have the following table mlist:

+----------+---------+
| mlist_id | addr_id |
+----------+---------+
|        1 |       1 |
|        2 |       2 |
|        2 |       3 |
|        1 |       3 |
+----------+---------+

This is the join table of my address book and my mailing lists. So person 1 
is in list 1, person 2 is in list 2, and person 3 is in both lists.

What I want to do is get a list of everyone that is NOT in a certain list. 
In other words, if I'm editing list 1, I need a list of all the people in 
the address book that aren't in list 1 (person 2). If I'm editing list 2, I 
want person 1. I never want to see person 3, because he is already in both 
lists.

I'm currently trying to do this with a statement like "SELECT * FROM mlist 
GROUP BY addr_id HAVING mlist_id != 'list I'm currently editing'". The 
problem is that group by addr_id keeps the first row's value for mlist_id. 
So when I'm editing list 2, it works. But when I'm editing list 1, person 3 
still shows up. If the last two rows were the other way around in the 
table, it would work for list 1 and not for list 2.

So the question is, is there a command I can use to look through the 
aggregate set of mlist_id's, or is there another way to write this query?

Thanks!


-------------------------------
Adam Gintis
Vanderbilt University


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to