Andrew, I think you want a full outer join. If I understood correctly, you want all real data, plus all codes without data. Doug -----Original Message----- From: pgsql-general-owner@xxxxxxxxxxxxxx [mailto:pgsql-general-owner@xxxxxxxxxxxxxx] On Behalf Of Scott Marlowe Sent: Thursday, October 22, 2009 6:07 PM To: Bierbryer, Andrew Cc: pgsql-general@xxxxxxxxxxxxxx Subject: Re: Right Join Question On Thu, Oct 22, 2009 at 12:43 PM, Bierbryer, Andrew <abierbryer@xxxxxxxxxxxxxxxxxx> 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? -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general