Re: left outer join on multi tables

From: Richard Broersma Jr <rabroersma(at)yahoo(dot)com>
To: quickcur(at)yahoo(dot)com, pgsql-general(at)postgresql(dot)org
Subject: Re: left outer join on multi tables
Date: 2006-10-11 05:31:47
Message-ID: 20061011053147.12269.qmail@web31802.mail.mud.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

> table name
> {
> id integer primary key
> first_name text,
> middle_name text,
> last_name text
> }
>
> table address
> {
> id integer primary key
> number int,
> street text,
> city text,
> state text
> }
>
> table work
> {
> id integer primary key
> hours text,
> shift
> }
>
> table person
> {
> id integer primary key
> namid integer references name(id),
> addressid integer referenes address(id),
> workid integer references work(id)
> }
> nameid, addressid or workid in person table may be empty.
> I would like to make a view which shows all information about a person
> in one row
> first_name, last_name, street, city, workhours, ...
> In the peron table, if the workid, addressid, or nameid is empty, just
> do not display the correspodent information.
> I think I need left outer join, but I do not know how to use it. Could
> anyone help?

CREATE VIEW AS
SELECT N.first_name,
N.last_name,
A.street,
A.city,
W.hour,
....
FROM person P
LEFT JOIN ON (P.namid = N.id)
LEFT JOIN ON (P.addressid = A.id)
LEFT JOIN ON (P.workid = W.id)
;

Hopefully this is all correct and is what you are looking for?

Regards,

Richard Broersma Jr.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message George Pavlov 2006-10-11 06:44:56 query log corrupted-looking entries
Previous Message Richard Broersma Jr 2006-10-11 05:19:45 Re: restoring a file system backed-up data dir

Browse pgsql-hackers by date

  From Date Subject
Next Message Jaime Casanova 2006-10-11 05:44:30 Re: Index Tuning Features
Previous Message Stephen Frost 2006-10-11 04:51:16 array_accum aggregate