Re: correlated delete with 'in' and 'left outer join'

From: Michael Chaney <mdchaney(at)michaelchaney(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: correlated delete with 'in' and 'left outer join'
Date: 2004-02-27 17:01:10
Message-ID: 20040227170110.GA7898@michaelchaney.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

> >The original subquery looked like:
> >select distinct e.ItemID from LogEvent e left outer join Item i
> >on e.ItemID = i.ItemID where e.EventType != 'i' and i.ItemID is null

Please, before continuing this thread, read my post below. What you're
all getting around to, albeit painfully, is that this subquery is
worthless as-is. This is the mysql way of finding rows in one table
with no match in another without the convenience of the "in" or "exists"
constructs.

Because we're using Postgres and have those constructs, the original
query can be rewritten simply with either:

delete from LogEvent where EventType != 'i' and ItemID not in
(select ItemID from Item)

That's it. That's the whole query. It does what he wants.

Michael
--
Michael Darrin Chaney
mdchaney(at)michaelchaney(dot)com
http://www.michaelchaney.com/

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Mike Mascari 2004-02-27 17:05:48 Re: correlated delete with 'in' and 'left outer join'
Previous Message Richard Huxton 2004-02-27 17:00:27 Re: field must appear in the GROUP BY clause or be used