Re: What kind of JOIN, if any?

Поиск
Список
Период
Сортировка
От Paul M Foster
Тема Re: What kind of JOIN, if any?
Дата
Msg-id 20090917161046.GK28540@quillandmouse.com
обсуждение исходный текст
Ответ на Re: What kind of JOIN, if any?  (Mark Styles <postgres@lambic.co.uk>)
Список pgsql-general
On Thu, Sep 17, 2009 at 11:23:12AM -0400, Mark Styles wrote:

> 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;

Another good suggestion. Thanks.

Paul

--
Paul M. Foster

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

Предыдущее
От: Scott Marlowe
Дата:
Сообщение: Re: Index Usage in View with Aggregates
Следующее
От: Nathaniel
Дата:
Сообщение: COPY binary