Re: Getting several columns from subselect with LIMIT 1

From: "Merlin Moncure" <mmoncure(at)gmail(dot)com>
To: "Pierre Thibaudeau" <pierdeux(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Getting several columns from subselect with LIMIT 1
Date: 2008-09-21 02:40:24
Message-ID: b42b73150809201940j3dd5fc7sbc8ebf20da172270@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Sat, Sep 20, 2008 at 11:36 AM, Pierre Thibaudeau <pierdeux(at)gmail(dot)com> wrote:
> I have a PERSONS table.
> I also have a PROGENY table, which is a many-to-many association table
> with two foreign keys to the PERSONS table to itself.
> (In this day and age, not only can an individual have any number of
> children, but also a person can have any number of parents! At least,
> let's assume that's true for the sake of this setup.)
>
> Suppose I wish to construct a view of the persons, along with the name
> of their first-born (if they have one; NULL otherwise). The
> following SELECT does just that:
>
> SELECT
> persons.*,
> (
> SELECT child.name
> FROM progeny JOIN persons child ON child.id = progeny.child
> WHERE progeny.parent = persons.id
> ORDER BY child.birthdate ASC
> LIMIT 1
> ) AS firstborn_name
> FROM persons;
>
> Now, this is probably not the most elegant piece of code, but the real
> problem is that
> I cannot see how to extend it to the case where I want not only the
> firstborn's name but also the firstborn's ID
> (short of repeating the entire subselect a second time). At the
> moment, with this current syntax, my subSELECT statement would not be
> allowed to return more than a single column.

SELECT (person).*, (progeny).* from
(
select persons as person,
(
SELECT progeny
FROM progeny JOIN persons child ON child.id = progeny.child
WHERE progeny.parent = persons.id
ORDER BY child.birthdate ASC
LIMIT 1
) AS firstborn
FROM persons;
) q;

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Kevin Hunter 2008-09-21 04:49:55 Re: PDF Documentation for 8.3?
Previous Message Douglas McNaught 2008-09-21 02:23:58 Re: offtopic, about subject prefix