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