Re: find the "missing" rows

From: Andrew - Supernews <andrew+nonews(at)supernews(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: find the "missing" rows
Date: 2004-12-02 10:07:52
Message-ID: slrncqtqbo.2kf6.andrew+nonews@trinity.supernews.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On 2004-12-02, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> "Kevin B." <db(at)ke5in(dot)com> writes:
>> Select a.i, b.i
>> from t as a
>> left join t as b on a.i = b.i
>> where a.n = 'a' and b.n = 'b' and b.i is null
>
> This can't succeed since the b.n = 'b' condition is guaranteed to fail
> when b.* is nulled out ...

You can make it work by moving parts of the condition into the explicit
join clause:

select a.i
from t as a left join t as b on a.n='a' and b.n='b' and a.i=b.i
where a.n='a' and b.i is null;

(notice you still need the check on a.n='a' outside the join condition)

--
Andrew, Supernews
http://www.supernews.com - individual and corporate NNTP services

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Andrew M 2004-12-03 09:00:53 Failed system call was shmget(key=1, size=1155072, 03600).
Previous Message Richard Huxton 2004-12-02 09:03:49 Re: order by problem