Re: cross-table reference

From: Bruno Wolff III <bruno(at)wolff(dot)to>
To: Mukesh Ghatiya <mukeshg(at)juniper(dot)net>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: cross-table reference
Date: 2005-06-28 12:47:33
Message-ID: 20050628124733.GB20566@wolff.to
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Wed, Jun 22, 2005 at 14:56:08 +0530,
Mukesh Ghatiya <mukeshg(at)juniper(dot)net> wrote:
> Hi,
>
> I need to perform a query similar to
>
> SELECT table1.a.b.x table1.a.c.x from table1;
>
>
> In this case "a" is an attribute in 'table1' and is a foreign key to
> other table2 which has 'b', and 'c' as attributes, which again are
> foreign keys to table3.
>
>
> Is there any simple way of doing this other than using the complicated
> nested joins which would include aliases also.
>
> SELECT table31.x table32.x
> FROM table1, table3 AS table31, table3 AS table32
> WHERE table1.a = table2.id
> AND table2.b = table31.id
> AND table2.c = table32.id

This isn't really that complicated. (Though note you left table2 out of the
from item list.)
You might be able to reasonable performance and simplify the select
statement by defining two functions to select from table2 and table3.
If this were written in language SQL the query might even end up with
essentially the same plan.

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Bruno Wolff III 2005-06-28 12:53:18 Re: Unique primary index?
Previous Message Bruno Wolff III 2005-06-28 12:37:20 Re: ENUM like data type