Re: outer join help...

From: Marc Lavergne <mlavergne-pub(at)richlava(dot)com>
To: Yuva Chandolu <ychandolu(at)ebates(dot)com>
Cc: "'pgsql-hackers(at)postgresql(dot)org'" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: outer join help...
Date: 2002-07-29 21:31:17
Message-ID: 3D45B425.2050804@richlava.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Looks fine, you may want to rephrase it as:

select yt1_name, yt1_descr, yt2_name, yt2_descr, yt3_name, yt3_descr
from yuva_test1 left outer join yuva_test2 on yt1_id = yt2_id
left outer join yuva_test3 on yt1_id = yt3_id

to make it more legible. The alias is overkill in this case since you
don't have any duplicate tables.

Yuva Chandolu wrote:
> Hi,
>
> I tried yuva_test1 left outer join yuva_test2 and yuva_test1 left outer join
> yuva_test3 in the same query in Oracle. I tried the following query in
> postgres and it worked...
>
> select yt1_name, yt1_descr, yt2_name, yt2_descr, yt3_name, yt3_descr from
> (yuva_test1 left outer join yuva_test2 on yt1_id = yt2_id) as A left outer
> join yuva_test3 on yt1_id = yt3_id
>
> I have used table alias technique and I got the same results as with Oracle.
>
> Could you please tell me if the above query is correct or not, because some
> times wrong queries may give correct results with test data and they fail
> when we try with live data.
>
> Thanks
> Yuva
>
> -----Original Message-----
> From: Andrew Sullivan [mailto:andrew(at)libertyrms(dot)info]
> Sent: Monday, July 29, 2002 1:27 PM
> To: Yuva Chandolu
> Subject: Re: [HACKERS] outer join help...
>
>
> On Mon, Jul 29, 2002 at 01:07:43PM -0700, Yuva Chandolu wrote:
>
>>Hi,
>>
>>I need small help in outer joins in postgresql. We have three tables
>
> created
>
>>using the following scripts
>>
>>CREATE TABLE "yuva_test1" (
>> "yt1_id" numeric(16, 0),
>> "yt1_name" varchar(16) NOT NULL,
>> "yt1_descr" varchar(32)
>>);
>>
>>CREATE TABLE "yuva_test2" (
>> "yt2_id" numeric(16, 0),
>> "yt2_name" varchar(16) NOT NULL,
>> "yt2_descr" varchar(32)
>>);
>>
>>CREATE TABLE "yuva_test3" (
>> "yt3_id" numeric(16, 0),
>> "yt3_name" varchar(16) NOT NULL,
>> "yt3_descr" varchar(32)
>>);
>>
>>When I run the query "select yt1_name, yt1_descr, yt2_name, yt2_descr,
>>yt3_name, yt3_descr from yuva_test1, yuva_test2, yuva_test3 where yt1_id =
>>yt2_id(+) and yt1_id = yt3_id(+)", it works fine with Oracle(created same
>>tables and data on Oracle database) and gives the results as expected.
>
>
> select yt1_name, yt1_descr, yt2_name, yt2_descr, yt3_name, yt3_descr
> from yuva_test1 [left? right? I don't know the Oracle syntax] outer
> join yuva_test2 on yt1_id=yt2_id [left|right] outer join yuva_test3
> on yt1_id = yt3_id
>
> is what you want, I think.
>
> A
>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Ian Barwick 2002-07-29 22:11:47 No bison and NAMEDATALEN > 31: initdb failure?
Previous Message Justin Clift 2002-07-29 21:14:48 Re: TPC-* Benchmarks