Как запросить конкретную таблицу, когда известен только идентификатор родительской таблицы - PullRequest
0 голосов
/ 07 марта 2009

У меня есть отношение наследования в моей базе данных, где у меня есть родительская таблица (таблица A), которая в основном представляет собой последовательность автоматически увеличивающихся целых чисел (столбец Id). Отсюда у меня есть несколько таблиц (Таблица B, C & D), которые также имеют столбец Id, который является внешним ключом для столбца Id в Таблице A.

Теперь мой вопрос: если у меня есть Id, какой самый эффективный способ я могу получить правильную строку из таблицы B, C или D?

РЕДАКТИРОВАТЬ: в одной из таблиц B, C или D будет только ОДНА строка с идентификатором (в остальных 2 не будет соответствующей строки).

1 Ответ

1 голос
/ 07 марта 2009

Вы можете использовать запросы на объединение ... т.е.

select 'TABLE B', a_id from b where a_id = 1
UNION
select 'TABLE C', a_id from c where a_id = 1
UNION
select 'TABLE D', a_id from d where a_id = 1;

Это даст вам список таблиц с a_id равным 1, а также покажет таблицу, в которой он находился.

Если все 3 таблицы имеют одинаковую структуру, вы можете сделать что-то похожее:

select b.* from b where a_id = 1
UNION
select c.* from c where a_id = 1
UNION
select d.* from d where a_id = 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...