Я пытаюсь создать запрос, который извлекает информацию из двух других таблиц, однако я знаю только, какую таблицу вытащить на основе столбца в другой таблице. В настоящее время я занимаюсь этим, используя хранимую процедуру (например, создаю запрос и запустил его), но я хотел знать, есть ли лучший способ сделать это, или если бы я мог выполнить его в одном запросе.значения запроса из другой таблицы на основе значения столбца
С точки зрения соединений, идентификаторы уникальны по всей базе данных, поэтому два идентификатора не будут перекрываться. Однако я не знаю, какая подтаблица имеет идентификатор. Я могу найти это, потянув в несвязанную таблицу, которая имеет информацию (назовите ее Таблицей объектов). Один из столбцов даст мне имя таблицы для информации (в моем примере ниже, Person). Ниже я привел простой пример. Можете ли вы увидеть, как я мог бы выполнить это в одном запросе? Что-то вроде этого, к чему я стремлюсь, но я начинаю думать, что это невозможно.
SELECT * FROM base_table
LEFT JOIN object ON object.id = base_table.role
LEFT JOIN [object.type] tmp ON tmp.entity_id = base_table.entity_id
id | role | entity_id (Base Table)
---------------------
1 | 101 | 1000
id | type (Objects Table)
------------
101| person
entity_id | name | etc.. (Person Table)
------------------------
1000 | Bob | ...
Я также ожидаю объединения может быть возможным решением - но другой тогда просто подключить все возможные таблицы и разбор столбцов, чтобы соответствовать должным образом (что это может быть целых 20 столов), я предпочел бы не , Это решение также немного похоже на то, что столбцы не всегда соответствуют хорошему (например, таблица Person не имеет аналогичных столбцов в таблице адресов)
какой будет прецедент для этого? – JamieD77
Есть ли фиксированное количество значений для столбца [object.type], или число возможных значений будет расти в будущем? –
Чтобы ответить в порядке - пример использования предназначен для отображения списка информации, относящейся к базовой таблице. Например. У меня есть таблица для людей и таблица для объектов, где человек может быть связан со многими объектами. В настоящее время это фиксированное число, но может измениться в будущем (это не регулярное изменение). – Sh4d0wsPlyr