From: | Bruno Wolff III <bruno(at)wolff(dot)to> |
---|---|
To: | Slawek Jarosz <Jarosz(dot)S(at)ems-t(dot)ca> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Optional join |
Date: | 2003-08-15 04:57:45 |
Message-ID: | 20030815045745.GA27468@wolff.to |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On Thu, Aug 14, 2003 at 10:40:02 -0400,
Slawek Jarosz <Jarosz(dot)S(at)ems-t(dot)ca> wrote:
> Hi,
>
> I trying to write a query that will join 2 tables. Here's the concept:
> Table 1: table1, primary key pk1
> Table 2: table2, primary key pk2
>
> One of the fields (f2) in table2 contains either the primary key of table1 or a NULL value. So normally a pretty basic query:
>
> SELECT table1.*, table2.pk2 FROM table1, table2 WHERE table2.f2 = table1.pk1;
>
> BUT what I would like to do is show all records of Table 1 even if there is no match in Table 2. Meaning that the reults could be
> table1... table2.pk2
> table1... NULL
>
> Doable?
You use outer joins to do this. Something like:
SELECT table1.*, table2.pk2 FROM
table1 left join table2 on table2.f2 = table1.pk1;
From | Date | Subject | |
---|---|---|---|
Next Message | David Fetter | 2003-08-15 05:50:02 | Re: Optional join |
Previous Message | Stephan Szabo | 2003-08-15 04:40:56 | Re: Optional join |