Re: Find users that have ALL categories
От | Sam Mason |
---|---|
Тема | Re: Find users that have ALL categories |
Дата | |
Msg-id | 20100701113755.GE7584@samason.me.uk обсуждение исходный текст |
Ответ на | Re: Find users that have ALL categories (David Fetter <david@fetter.org>) |
Ответы |
Re: Find users that have ALL categories
|
Список | pgsql-general |
On Thu, Jul 01, 2010 at 04:26:38AM -0700, David Fetter wrote: > On Wed, Jun 30, 2010 at 12:11:35AM -0700, Nick wrote: > > Is this the most efficient way to write this query? Id like to get a > > list of users that have the categories 1, 2, and 3? > > > > SELECT user_id FROM user_categories WHERE category_id IN (1,2,3) GROUP > > BY user_id HAVING COUNT(*) = 3 > > The above method depends on (user_id, category_id) being unique, and > excludes users with, say, categories 1, 2, 3 and 4. Are you sure that > that latter is what you want? AFAICT, the above code will include a user with categories 1 to 4. Why do you think otherwise? If the (user_id,category_id) combination isn't unique, it's easy to change the HAVING clause into HAVING COUNT(DISTINCT category_id) = 3. -- Sam http://samason.me.uk/
В списке pgsql-general по дате отправления: