not grokking outer joins... - Mailing list pgsql-general

From will trillich
Subject not grokking outer joins...
Date
Msg-id 20010820233346.A12955@serensoft.com
Whole thread Raw
Responses Re: not grokking outer joins...  (Stephan Szabo <sszabo@megazone23.bigpanda.com>)
List pgsql-general
i'm trying to wrap outer joins around my cerebellum:

    CUST:
        id serial
        name varchar(30)
    ITEM:
        cust integer references cust (id)
        data varchar(30)
    INFO:
        cust integer references cust (id)
        stuff text

for my query i'd like, for every customer, to have
item.* show up if it exists, and info.* show up
if it exists...

    select
        CUST.name,
        ITEM.data,
        INFO.stuff
    from
        CUST left join ITEM on (CUST.id=ITEM.cust),
        CUST left join INFO on (CUST.id=INFO.cust)
    .... not!

or does this need some subselect magic?

and (separate question) is there a way to be sure that ONE or the
OTHER or BOTH have joinable data, but don't show CUST if neither
ITEM nor INFO has a match?

    foreach CUST
        if ITEM matches
            show record
        elsif INFO matches
            show record
        else -- neither matches
            dont show squat, not even from cust
        end if
    end foreach

--
Khan said that revenge is a dish best served cold. I think
sometimes it's best served hot, chunky, and foaming.
    - P.J.Lee ('79-'80)

will@serensoft.com
http://sourceforge.net/projects/newbiedoc -- we need your brain!
http://www.dontUthink.com/ -- your brain needs us!

pgsql-general by date:

Previous
From: "Kevin J. Drewiske"
Date:
Subject: RE: Printable report generation
Next
From: "Andrey Y. Mosienko"
Date:
Subject: Sort by foreign date column