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