Re: What kind of JOIN, if any?

Поиск
Список
Период
Сортировка
От Mark Styles
Тема Re: What kind of JOIN, if any?
Дата
Msg-id 20090917152312.GH24063@lambic.co.uk
обсуждение исходный текст
Ответ на What kind of JOIN, if any?  (Paul M Foster <paulf@quillandmouse.com>)
Ответы Re: What kind of JOIN, if any?  (Paul M Foster <paulf@quillandmouse.com>)
Список 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


Вложения

В списке pgsql-general по дате отправления:

Предыдущее
От: Sam Mason
Дата:
Сообщение: Re: What kind of JOIN, if any?
Следующее
От: Paul M Foster
Дата:
Сообщение: Re: What kind of JOIN, if any?