Diferences between IN and EXISTS?

From: Edson Richter <edsonrichter(at)hotmail(dot)com>
To: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Diferences between IN and EXISTS?
Date: 2013-02-03 02:25:01
Message-ID: BLU0-SMTP2206E3D769625F245425A88CF020@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi!

Assumptions: PostgreSQL 9.2.2, Win64, already run vacumm full freeze
analyze. No problems in the database. I know there are 1247 records to
be found.
Why does these queries return different results:

select count(*) from parcela
where id not in (select parcela_id from cadastroservicoparcela);

count
--------
0

select count(*) from parcela
where not exists (select 1 from cadastroservicoparcela where parcela_id
= parcela.id);

count
--------
1247

I can't figure out, I did expect that the first one returns exactly same
result!
Could null values in cadastroservicoparcela.parcela_id affect the first
query?

Thanks,

Edson

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Jasen Betts 2013-02-03 02:58:12 Re: Can LC_TIME affect timestamp input?
Previous Message Carlo Stonebanks 2013-02-02 17:36:04 Re: What language is faster, C or PL/PgSQL?