Join Advice and Assistance - Mailing list pgsql-sql

From Gary Chambers
Subject Join Advice and Assistance
Date
Msg-id 302670f21002211525r65caee9et396c374a3cd64b0d@mail.gmail.com
Whole thread Raw
Responses Re: Join Advice and Assistance
List pgsql-sql
All,

I've encountered a mental block due primarily to my inexperience with
moderately complex joins.  Given the following three tables:
                   Table "public.users" Column   |          Type          |       Modifiers
-----------+------------------------+-----------------------userid    | bigint                 | not nulllname     |
charactervarying(64)  | not nullfname     | character varying(64)  | not nullpasswd    | character varying(64)  | not
nullis_active| boolean                | not null default true
 
              Table "public.user_emailaddrs" Column   |          Type          |       Modifiers
-----------+------------------------+-----------------------userid    | bigint                 | not nullemailaddr |
charactervarying(256) | not nullis_active | boolean                | not null default true
 
                      Table "public.usermetas"    Column     |            Type             |       Modifiers
----------------+-----------------------------+------------------------userid         | bigint                      |
notnullstartdate      | timestamp without time zone | not null default now()lastlogindate  | timestamp without time
zone| not null default now()lastpwchange   | timestamp without time zone | not null default now()logincount     |
integer                    | not null default 1
 

users and usermetas is a one-to-one relationship.
users and user_emailaddrs is a one-to-many relationship.

What is the best way to get these tables joined on userid and return
all emailaddr records from user_emailaddrs (e.g. if userid has three
(3) e-mail addresses in user_emailaddrs)?  Is there any way to avoid
returning all fields in triplicate? Please feel free to criticize
where necessary.  Thank you very much in advance.

-- Gary Chambers

/* Nothing fancy and nothing Microsoft! */


pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: sintax error
Next
From: Rob Sargent
Date:
Subject: Re: Join Advice and Assistance