pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Koen Bok <koen@madebysofa.com>
To: pgsql-sql@postgresql.org
Subject: Simple Query?
Date: Tue, 11 Sep 2007 23:27:19 +0200
Message-ID: <2C0EA394-5AC8-4FC8-99F3-5FAEE9720360@madebysofa.com> (raw)

I am doing some optimization on our search, but I need some advise...

table: item

id			name
--------------------------------------
1			iPod
2			Zune
3			Walkman

table: search_item

id_search	id_item
--------------------------------------
1			1
1			2
1			3
2			2
2			3
3			1
3			3


Now what I want to have is the items that match with id_search 1 and  
2 and 3. Therefore I use the following SQL query.

SELECT * FROM item WHERE id IN
	(SELECT id_item FROM search_item WHERE id_search=1 AND id_item IN
		(SELECT id_item FROM search_item WHERE id_search=2 AND id_item IN
			(SELECT id_item FROM search_item WHERE id_search=3)));

This should only return id_item 3. Would this be the best SQL query  
to get this result? I have the feeling there should be something  
better, but I cannot find it. Anyone has a hint?



view thread (12+ messages)  latest in thread

Message-ID: <2C0EA394-5AC8-4FC8-99F3-5FAEE9720360@madebysofa.com>
Permalink:  ../2C0EA394-5AC8-4FC8-99F3-5FAEE9720360@madebysofa.com/
Also on:    postgresql.org/message-id/2C0EA394-5AC8-4FC8-99F3-5FAEE9720360@madebysofa.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: koen@madebysofa.com
  Subject: Re: Simple Query?
  In-Reply-To: <2C0EA394-5AC8-4FC8-99F3-5FAEE9720360@madebysofa.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox