2013-11-08 4 views
1

Я знаю, что это глупый вопрос, но я должен просить прощения.postgres: left join by unknown table - значение столбца

Я в ситуации, когда db, над которым я работаю, не имеет «обратного» отношения к другой таблице.

Предположим, у меня три таблицы - назовем их таблицами типов, rt, wt и ret.

Каждая из этих таблиц имеет group_id.

Таблица group имеет type, который может содержать rt, wt или ret.

Обычная процедура выбора - выбрать из таблицы типов, а затем левой группы join на group_id.

Я в ситуации, когда мне нужно выбрать в обратном порядке, но я не знаю, какую таблицу я должен выбрать во время выполнения. У меня есть тип.

Есть ли такая вещь, как выбор таблицы по значению столбца? например

SELECT * FROM group LEFT JOIN `group.type` ON `group.type`.group_id = group.id 
+2

Предположим, вы можете сделать динамический SQL внутри функции (ick) или LEFT JOIN их всех, а затем COALESCE, чтобы свернуть значения. Как выглядят эти три таблицы? –

+0

@muistooshort Я считаю, что это правильный ответ. Казалось, немного странно, чтобы присоединиться к ним, но, оказывается, так оно и было сделано на этом дБ. Благодаря! –

ответ

1

В моем случае я просто сделал несколько левых объединений, конечно, только один из них застрял.