Re: Question About UNION

From: Josh Williams <joshwilliams(at)ij(dot)net>
To: Bill Thoen <bthoen(at)gisnet(dot)com>
Cc: rod(at)iol(dot)ie, pgsql-general(at)postgresql(dot)org
Subject: Re: Question About UNION
Date: 2008-10-09 19:22:28
Message-ID: 1223580148.21036.8.camel@godzilla.local.scalefeather.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thu, 2008-10-09 at 10:59 -0600, Bill Thoen wrote:
> >> I'm trying to combine two tables, but I only want unique records based
> >> on the first two columns. Can UNION be used to join three-column tables
> >> but only include records based on the uniqueness of the first two
> >> columns? If not, how would I do this with PostgreSQL 8.1?
> >
> > How do you decide which records you want? - e.g. given the following rows...
> >
> > (a, b, c)
> > (a, b, d)
> >
> > ...how do you decide whether you the one with c or the one with d?
> >
> >
> The physical order that they appear will take care of that.

If the rest of the columns don't matter, how about:

SELECT DISTINCT ON(col1, col2) * FROM (
SELECT col1, col2, col3 FROM table1
UNION
SELECT col1, col2, col3 FROM table2
ORDER BY col1, col2
) AS uniontable;

- Josh Williams

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Bill Thoen 2008-10-09 19:31:39 Re: Question About UNION
Previous Message Joao Ferreira gmail 2008-10-09 18:42:41 when COPY violates Primary Keys