Re: multiple lookup per row

Поиск
Список
Период
Сортировка
От Josh Berkus
Тема Re: multiple lookup per row
Дата
Msg-id web-88697@davinci.ethosmedia.com
обсуждение исходный текст
Ответ на multiple lookup per row  (Gary Stainburn <gary.stainburn@ringways.co.uk>)
Ответы Re: multiple lookup per row  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-sql
Gary,

First:  Go out and buy "SQL for Smarties".  Now.  Read it.

However, I'll give you this one as a freebie:

> I've got a table 'phones' which has an indexed key 'pid' of type
> int4, and a
> phone number of type varchar(12).
>
> I've then got a table 'members'  which as an index key 'mid' of type
> int4.

SELECT members.mid, members.name, members.address, hp.phone AS
home_phone, wp.phone AS work_phone, cp.phone as cell_phone
FROM members LEFT OUTER JOIN
    (SELECT mid, phone FROM phones WHERE ptype = 'home') hp
        ON members.mid = hp.mid
    LEFT OUTER JOIN
    (SELECT mid, phone FROM phones WHERE ptype = 'work') wp
        ON members.mid = wp.mid
    LEFT OUTER JOIN
    (SELECT mid, phone FROM phones WHERE ptype = 'cell') cp
        ON members.mid = cp.mid
ORDER BY members.name;

You're experiencing the usual problem encountered by procedural
programmers when they first start on SQL.  SQL is a declarative
language, and requires a different knid of thinking than procedural
languages.  Thus the use of table aliasing and subselects above.

Have fun!

-Josh


______AGLIO DATABASE SOLUTIONS___________________________
                                       Josh Berkus
  Complete information technology      josh@agliodbs.com
   and data management solutions       (415) 565-7293
  for law firms, small businesses        fax 621-2533
    and non-profit organizations.      San Francisco

Вложения

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

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: pl/pgsql - code review + question
Следующее
От: "Josh Berkus"
Дата:
Сообщение: Re: Records exactly the same.