Using table name in column for joining

Поиск
Список
Период
Сортировка
От Antonio Goméz Soto
Тема Using table name in column for joining
Дата
Msg-id 4B435B11.2030909@gmail.com
обсуждение исходный текст
Ответы Re: Using table name in column for joining  (Grzegorz Jaśkiewicz <gryzman@gmail.com>)
Список 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 по дате отправления:

Предыдущее
От: Adrian Klaver
Дата:
Сообщение: Re: FM format modifier does not remove leading zero from year
Следующее
От: Tom Lane
Дата:
Сообщение: Re: zic error to install 8.4.0