MySQL: выберите таблицу с именем таблицы из набора записей - PullRequest
0 голосов
/ 28 августа 2010

Я хотел бы сделать это за один шаг, поэтому я хотел бы знать, как я могу:

таблица 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 в таблицу

1 Ответ

1 голос
/ 28 марта 2011

Самый простой способ сделать это - создать 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, но вы можете обмануть, создав готовые операторы.

http://forums.mysql.com/read.php?60,3127,6260#msg-6260

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...