You wrote:

> I apologize for asking such a basic SQL question, but I am failing in
finding
> the solution...
> Consider the following table:
>
> id | option
> -----------
> 1  | a
> 2  | a
> 2  | b
>
> I want to find the ids with only a specific set of options.
> For example, if I wanted to get the ids which have option a only, the
query
> should give me 1 as a result, not 1 and 2.
>
> I suspect I need to use a LEFT JOIN on the same table, but I have failed
> miserably so far...
>
> Many thanks in advance to the SQL experts ;-).
>
> Jean-Luc (http://jfontain.free.fr/moodss/)
>

There are no need to use the left join in this query. The best way to do
what you wanna is within the following query:

SELECT id FROM table GROUP BY id HAVING COUNT(option) = 1;

You can change the count value to take the ids that have
specified number of options.

Luís Fernando


---------------------------------------------------------------------
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