Re: set difference - Mailing list pgsql-sql

From Tom Lane
Subject Re: set difference
Date
Msg-id 14808.1034691939@sss.pgh.pa.us
Whole thread Raw
In response to set difference  (Domoszlai László <dlacko@finit.hu>)
List pgsql-sql
Domoszlai László <dlacko@finit.hu> writes:
> I would like to make symmetrical(set) difference in a query.
> But the simpliest way I could find is 

> select id from a 
> except
> select id from b
> union 
> select id from b
> except
> select id from a

> Is there any better solution for this problem?

One thing you should definitely do is change "union" to "union all".
"union" implies a pass of duplicate removal, which shouldn't be
necessary here (unless a or b individually contain duplicates and
you want to get rid of those too).

Another thing to try is(a union b) except (a intersect b)
(Again, you might be able to say union all instead of union.)
Not sure which will be faster.
        regards, tom lane


pgsql-sql by date:

Previous
From: Jeff
Date:
Subject: Re: how do i insert an empty string ?
Next
From: "Josh Berkus"
Date:
Subject: Re: Messy Casts, Is there a better way?