Обсуждение: Selecting * from the base table but getting the inheriteds columns

Поиск
Список
Период
Сортировка

Selecting * from the base table but getting the inheriteds columns

От
"James Adams"
Дата:
Hello,
 
I have a "baseTable".  I have a number of decendantTables that INHERIT from the base table. 
 
I want to do somthing like
 
=>select * from baseTable;
 
But I want it to return the data in the all the descendant tables along with the extra column that they contain.  How do I do this?
 
please help
 
many thanks for your time
 
James
 
 

Re: Selecting * from the base table but getting the inheriteds

От
Tomasz Myrta
Дата:
Uz.ytkownik James Adams napisa?:
> Hello,
>  
> I have a "baseTable".  I have a number of decendantTables that INHERIT 
> from the base table. 
>  
> I want to do somthing like
>  
> =>select * from baseTable;
>  
> But I want it to return the data in the all the descendant tables along 
> with the extra column that they contain.  How do I do this?
>  

select *, cast(null as varchar) as another_field1, cast(null as int4) as another_field2
from only basetable
union
select *
from descent_table

Isn't it easier to just create baseTable with the same columns as 
descent tables (and fill them with nulls)?

Tomasz Myrta



Re: Selecting * from the base table but getting the inheriteds

От
"James Adams"
Дата:
Yea it would be easier to have everything in one table filling unused with
nulls, but I was trying to avoid that because of the wasted space.

But I think I'll do it that way after all  :~]

Thanks for your help


----- Original Message -----
From: "Tomasz Myrta" <jasiek@klaster.net>
To: "James Adams" <pornstarbatman@hotmail.com>
Cc: <pgsql-sql@postgresql.org>
Sent: Wednesday, October 30, 2002 9:05 AM
Subject: Re: [SQL] Selecting * from the base table but getting the
inheriteds


> Uz.ytkownik James Adams napisa?:
> > Hello,
> >
> > I have a "baseTable".  I have a number of decendantTables that INHERIT
> > from the base table.
> >
> > I want to do somthing like
> >
> > =>select * from baseTable;
> >
> > But I want it to return the data in the all the descendant tables along
> > with the extra column that they contain.  How do I do this?
> >
>
> select
>   *,
>   cast(null as varchar) as another_field1,
>   cast(null as int4) as another_field2
> from only basetable
> union
> select
>   *
> from descent_table
>
> Isn't it easier to just create baseTable with the same columns as
> descent tables (and fill them with nulls)?
>
> Tomasz Myrta
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/users-lounge/docs/faq.html
>


Re: Selecting * from the base table but getting the inheriteds

От
"Ross J. Reedstrom"
Дата:
On Wed, Oct 30, 2002 at 10:25:17AM +0100, James Adams wrote:
> Yea it would be easier to have everything in one table filling unused with
> nulls, but I was trying to avoid that because of the wasted space.
> But I think I'll do it that way after all  :~]
> Thanks for your help

Don't fret too much about the wasted space: NULL fields set a bit in
a bitmask in the header of the on-disk tuple, so they take up _no_
storage at all.

Ross