pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Jeremy Semeiks <jrs@farviolet.com>
To: Lane Van Ingen <lvaningen@esncc.com>
To: pgsql-sql@postgresql.org
Subject: Re: Is it This Join Condition Do-Able?
Date: Wed, 17 Aug 2005 10:44:50 -0700
Message-ID: <20050817174450.GU28158@farviolet.farviolet.com> (raw)
In-Reply-To: <EKEMKEFLOMKDDLIALABIAEHJCBAA.lvaningen@esncc.com>
References: <EKEMKEFLOMKDDLIALABIAEHJCBAA.lvaningen@esncc.com>

On Wed, Aug 17, 2005 at 12:54:50PM -0400, Lane Van Ingen wrote:
> Given three tables: a, b, c ; each consist of a 'keyfld' and a field called
> 'foo':
>      tbl a       tbl b         tbl c
>    ---------   ---------     ---------
>    a.keyfld    b.keyfld       c.keyfld
>    a.foo1      b.foo2         c.foo3
> 
> I want to always return all of tbl a; and I want to return b.foo2 and c.foo3
> if
> they can be joined to based on keyfld.a; I know that it will involve a LEFT
> OUTER
> JOIN on table a, but have not seen any examples of joins like this on 3 or
> more
> tables.
> 
> select a.keyfld, a.foo1, b.foo2, c.foo3
> from a, b, c
> where a.keyfld = <some value>
> and   a.keyfld = b.keyfld
> and   a.keyfld = c.keyfld;
> 
> Results could look like this:
>   a.keyfld  a.foo1   b.foo2  c.foo3
>     xxxx     xxxx     xxxx    (null)
>     xxxx     xxxx    (null)    xxxx
>     xxxx     xxxx    (null)   (null)
>     xxxx     xxxx     xxxx     xxxx

Just use two left joins:

select a.keyfld, a.foo1, b.foo2, c.foo3
from a
left join b on a.keyfld = b.keyfld
left join c on a.keyfld = c.keyfld
where a.keyfld = <some value>;

HTH,
Jeremy



view thread (7+ messages)  latest in thread

Message-ID: <20050817174450.GU28158@farviolet.farviolet.com>
Permalink:  ../20050817174450.GU28158@farviolet.farviolet.com/
Also on:    postgresql.org/message-id/20050817174450.GU28158@farviolet.farviolet.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: jrs@farviolet.com, lvaningen@esncc.com
  Subject: Re: Is it This Join Condition Do-Able?
  In-Reply-To: <20050817174450.GU28158@farviolet.farviolet.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox