Re: Reg: Sql Join

From: David G Johnston <david(dot)g(dot)johnston(at)gmail(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: Reg: Sql Join
Date: 2014-07-30 22:49:05
Message-ID: 1406760545580-5813364.post@n5.nabble.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

David G Johnston wrote
>
> CrashBandi wrote
>> Hi,
>>
>> I am having the following question. I am not sure how to approach it.
>> Please help!
>>
>> table A
>> name col1 col2 col3 col4 apple 100 11111 1 APL orange 200 22222 3 ORG
>> carrot 300 33333 3 CRT
>>
>> table B
>> custom_name value obj_type obj_id apple a FR 100 orange o FR 200
>> carrot
>> c VG 300 apple d FR 11111 orange e VG 22222 carrot f UC 33333 apple h
>> VG
>> 1 orange o FR 3 carrot c VG 3
>> when obj_type ='FR' then join on col1
>> When obj_type='VG' then join on col2
>> When obj_type='UC' then join on col2
>>
>> Thanks In advance,
>> CB
> You cannot do conditional joins in this manner. You will need to write
> three joins, one each against a subquery with the appropriate where
> clause.
>
> David J.

Actually you might be able to do:

On (case obj_type when 'xxx' then col1 when 'yyy' then col2 end = obj_id)

But I haven't tried something like this before.

David J.

--
View this message in context: http://postgresql.1045698.n5.nabble.com/Reg-Sql-Join-tp5813360p5813364.html
Sent from the PostgreSQL - sql mailing list archive at Nabble.com.

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Oliver d'Azevedo Christina 2014-07-30 23:09:43 Re: Reg: Sql Join
Previous Message David G Johnston 2014-07-30 22:45:24 Re: Reg: Sql Join