IN vs EXIIST

From: Jean-Christian Imbeault <jc(at)mega-bucks(dot)co(dot)jp>
To: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: IN vs EXIIST
Date: 2002-09-19 02:40:20
Message-ID: 3D893914.5030401@mega-bucks.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I find myself writing a lot of queries with this pattern:

select distinct key1 from A where id not it
(select distinct key1 from A where x='false');

The reason being that key1 is not a primary key (key1, key2 is the
primary key). i.e. I have a table like this

key1 key2 x
------------------
a 1 t
a 2 t
a 3 f
b 1 t
b 2 t
b 3 t
c 3 t
c 4 f

So basically I want key1 values for which all the X's are true.

I've seen many posts saying that using IN is not optimal and replacing
it with EXISTS is much better. I've read the only docs but I can't
understand the difference between the two or how to convert.

Can someone point me to some other docs or explain to me how to convert?
Or is my table schema wrong?

Thanks!

Jc

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Rob Hutton 2002-09-19 02:47:24 Aliasing all fields
Previous Message Bruce Momjian 2002-09-19 02:32:43 Re: [HACKERS] PGXLOG variable worthwhile?