Re: Right Join Question

From: Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com>
To: "Bierbryer, Andrew" <abierbryer(at)klsdiversified(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Right Join Question
Date: 2009-10-22 23:06:30
Message-ID: dcc563d10910221606t26d1b55cp956193f0aaca27dd@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thu, Oct 22, 2009 at 12:43 PM, Bierbryer, Andrew
<abierbryer(at)klsdiversified(dot)com> wrote:
> I am trying to solve the following problem. I have a certain column,
> to_state, that can take a finite set of values. I want to make sure that my
> query always returns those sets of finite values, even if not all of the
> values are represented in the results. In essence, I am looking to expand
> the result returned by the query by using a right join.
>
> When I do the following simple query, this seems to work.
>
> create table hat (the_hat integer);
> insert into hat values (1),(2),(3);
> create table cat (the_hat integer);
> insert into cat values (2),(3),(4),(5);
>
> select the_hat from hat
> right join cat c using(the_hat)
>
> The right join changes the results query from 1,2,3 to 2,3,4,5.

A right join will return all the rows on the right that aren't removed
by the where clause, and add the rows on the left that match, and
return nulls for those values where there is no match.

Perhaps you want a left join here?

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Scott Marlowe 2009-10-22 23:33:56 Re: question about pg_dump
Previous Message Yaroslav Tykhiy 2009-10-22 22:35:57 Re: Reversing flow of WAL shipping