Re: conditional FROM

From: Jasen Betts <jasen(at)xnet(dot)co(dot)nz>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: conditional FROM
Date: 2011-12-10 22:32:50
Message-ID: jc0mmi$4nb$2@reversiblemaps.ath.cx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On 2011-12-10, Richard Klingler <richard(at)klingler(dot)net> wrote:
> Good day...
>
> I'm trying to build a query for PGSQL 9.1 where a table has two
> references with only one being used depending of the type of entry..
>
> For example, the table has following simplified structure:
>
> portid primary key
> port2node index to table node
> port2card index to table card
>
> So how can I do a conditional FROM clause in the query depending on the
> column port2node and port2card?
> If port2card is Null or 0 I don't want it in the FROM clause as the
> query will return unneccessary duplicate
> row...the same goes for port2node being Null or 0...

use left outer join.

SELECT * FROM
port
LEFT OUTER JOIN node ON node.nodeid=port.port2node
LEFT OUTER JOIN card ON card.cardid=port.port2card

or something like that.

You may find coalesce() useful to combine columns where node and card
both carry equivalent information.

--
⚂⚃ 100% natural

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Jasen Betts 2011-12-10 22:42:15 Re: partitions versus databases
Previous Message Mario Splivalo 2011-12-10 22:24:23 Subselects to Joins? Or: how to design phone calls database