我想一步到位,所以我想知道如何:
表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我想从表c中获取document_specific_columns。 PS:在表a中可以是具有相同document_id但不同template_id的更多记录 我觉得意图非常清楚,我唯一不知道该怎么做的是引用将模板_table_name返回给表的子查询的FROM子句
答案 0 :(得分:1)
最简单的方法是在客户端上构建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,但您可以通过创建预准备语句来作弊。