Using table name in column for joining - Mailing list pgsql-general

From Antonio Goméz Soto
Subject Using table name in column for joining
Date
Msg-id 4B435B11.2030909@gmail.com
Whole thread Raw
Responses Re: Using table name in column for joining  (Grzegorz Jaśkiewicz <gryzman@gmail.com>)
List pgsql-general
Hello,

I have a column in a table that contains the name of another table,
and the id in that table.

I would like to use this in a join statement. Is that possible?

example:

create table animal (
  id serial,
  table_name varchar(8) default 'monkey' CHECK (table_name IN ('monkey', 'elephant')),
  table_id integer
);

create table monkey (
   id serial,
   name varchar(20)
);

create table elephant (
   id serial,
   name varchar(20)
);

and I want to do:

    select animal.name from animal left join animal.table_name on animaltablename.id = animal.table_id;

or something like that.

I know it's probably considered bad SQL, but what else can I do?

Thanks,
Antonio


pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: FM format modifier does not remove leading zero from year
Next
From: Tom Lane
Date:
Subject: Re: zic error to install 8.4.0