Re: What kind of JOIN, if any?

From: Mark Styles <postgres(at)lambic(dot)co(dot)uk>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: What kind of JOIN, if any?
Date: 2009-09-17 15:23:12
Message-ID: 20090917152312.GH24063@lambic.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thu, Sep 17, 2009 at 10:29:11AM -0400, Paul M Foster wrote:
> I can't find a way to do this purely with SQL. Any help would be
> appreciated.
>
> Table 1: urls
>
> id | url
> --------------
> 1 | alfa
> 2 | bravo
> 3 | charlie
> 4 | delta
>
> Table 2: access
>
> userid | url_id
> ---------------
> paulf | 1
> paulf | 2
> nancyf | 2
> nancyf | 3
>
> The access table is related to the url table via url_id = id.
>
> Here's what I want as a result of a query: I want all the records of the
> url table, one row for each record, plus the userid field that goes with
> it, for a specified user (paulf), with NULLs as needed, like this:
>
> userid | url
> -------------
> paulf | alfa
> paulf | bravo
> | charlie
> | delta
>
> I can do *part* of this with various JOINs, but the moment I specify
> userid = 'paulf', I don't get the rows with NULLs.

SELECT userid, url
FROM urls
LEFT OUTER JOIN (select * from access where userid = 'paulf') AS access
ON access.url_id = urls.id;

--
Mark
http://www.lambic.co.uk

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Paul M Foster 2009-09-17 15:39:44 Re: What kind of JOIN, if any?
Previous Message Sam Mason 2009-09-17 15:20:57 Re: What kind of JOIN, if any?