Re: Hack around lack of CORRESPONDING BY in EXCEPT? - Mailing list pgsql-performance

From Manfred Koizar
Subject Re: Hack around lack of CORRESPONDING BY in EXCEPT?
Date
Msg-id 5npibv8l1090ppjkt17is5ipq26honl1e1@4ax.com
Whole thread Raw
In response to Hack around lack of CORRESPONDING BY in EXCEPT?  ("Lucas Adamski" <ladamski@manageww.com>)
Responses Re: Hack around lack of CORRESPONDING BY in EXCEPT?
List pgsql-performance
On Wed, 7 May 2003 12:11:46 -0700, "Lucas Adamski"
<ladamski@manageww.com> wrote:
>I have two tables: an event table that logs random events as they come in,
>and a tracking table that keeps a state of events it cares about.  In this
>particular case I'm trying to obtain a list of tracking pkeys for related
>event data that do not correspond to a certain (other) set of event data.
>
>Ideally, here is what I want:
>
>SELECT tracking.pk,events.data1,events.data2 FROM tracking,events WHERE
>tracking.event_fk = event.pk EXCEPT (SELECT events.data1,events.data2 FROM
>events WHERE event.type = 10)

Lucas, try this untested query:

    SELECT tr.pk, ev.data1, ev.data2
      FROM tracking tr INNER JOIN events ev
        ON tr.event_fk = ev.pk
     WHERE ev.type != 10;

(Should also work with AND instead of WHERE.)

>SELECT tracking.pk,events.data1,events.data2 FROM tracking,events WHERE
>tracking.event_fk = event.pk EXCEPT (SELECT
>tracking.pk,events.data1,events.data2 FROM tracking,events WHERE
>tracking.event_fk = event.pk AND event.type = 10)
>
>That won't work for two reasons... first, there are no matching entries in
>the tracking table pointing to events where event.type = 10, meaning this
>query would always return an empty set.

I don't understand this.  If there are no entries with event.type 10,
then the subselect returns an empty result set, and <anything> EXCEPT
<empty> should give the original result?

Servus
 Manfred


pgsql-performance by date:

Previous
From: "Patrick Hatcher"
Date:
Subject: Re: Hack around lack of CORRESPONDING BY in EXCEPT?
Next
From: "Lucas Adamski"
Date:
Subject: Re: Hack around lack of CORRESPONDING BY in EXCEPT?