Я хотел бы сделать это за один шаг, поэтому я хотел бы знать, как я могу:
table a (documents
) имеет: pk, document_id, template_id
Таблица b (templates
) имеет: pk, template_id, template_table_name
Таблица c (template_table_name_1
) имеет: pk, document_id, document_specific_columns
поэтому... Я хотел бы запросить таблицу a, получить document_id и template_id, а затем использовать таблицу b, я хотел бы получить document_specific_columns из таблицы c. PS: в таблице a может быть больше записей с одинаковым document_id, но с другим template_id Я предполагаю, что намерения довольно ясны, единственное, что я не знаю, как это сделать, - ссылаться на предложение FROM подзапроса, который возвращает te template_table_name1 в таблицу
Самый простой способ сделать это - построить SQL-запрос на любом своем клиенте.
Итак, первым SQL-запросом будет
select t.template_table_name
from templates t,
documents d
where d.template_id = t.template_id
and d.document_id = @param_document_id
Тогда вы бы на своем клиенте создали второй SQL-запрос, чтобы выбрать * из любого имени template_table_name.
Если вы хотите сделать все это за один проход в базу данных, вам нужно будет сделать это в хранимой процедуре. MySQL не поддерживает динамический SQL, но вы можете обманывать, создавая подготовленные инструкции.