From: | Richard Huxton <dev(at)archonet(dot)com> |
---|---|
To: | imam <imam(at)effigent(dot)net> |
Cc: | pgsql-sql <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: problem while converting sybase quries to postgres |
Date: | 2005-02-03 10:52:21 |
Message-ID: | 42020265.2000708@archonet.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Please cc: the list when you reply to me - that way others can help too.
imam wrote:
>>If this is a left outer join, you could do something like:
>>SELECT
>> ...
>>FROM
>> pe_pop_sr_posted_tran_head t1
>>LEFT JOIN
>> pe_pop_po_header t2
>>ON
>> t1.po_header_pk = t2.po_header_pk
>>LEFT JOIN
>> pe_pop_sr_posted_tran_det t3
>>ON
>> t2.po_header_pk = t3.po_header_pk
>> AND t1.sr_tran_head_pk = t3.sr_tran_head_pk
>>
>>But you'll want to test it because I'm not clear what your query is doing.
>>--
>> Richard Huxton
>> Archonet Ltd
>
>
> Thanking for you reply the problem is that i have a "or" condition and left
> outer join between two table.A po_header_table is comman in both the join as
> given below
> t1.PO_HEADER_PK *= t2.PO_HEADER_PK or t3.PO_HEADER_PK *=
>>>t2.PO_HEADER_PK)
Ah! Hadn't spotted that. Would this be what you're after?
SELECT ... FROM
(
SELECT
t1.po_header_pk AS t1_phpk
t3.po_header_pk AS t3_phpk
...
FROM
t1, t3
WHERE
t1.sr_tran_head_pk = t3.sr_tran_head_pk
)
AS first
LEFT JOIN
t2
ON (
first.t1_phpk = t2.po_header_pk
OR first.t3_phpk = t2.po_header_pk
)
Not sure what happens if t1_phpk and t3_phpk both match different rows
in t2 or whether that's what you want.
--
Richard Huxton
Archonet Ltd
From | Date | Subject | |
---|---|---|---|
Next Message | Richard Huxton | 2005-02-03 10:54:08 | Re: Tunning postgresql on linux (fedora core 3) |
Previous Message | Din Adrian | 2005-02-03 09:55:04 | Tunning postgresql on linux (fedora core 3) |