2010-08-28 38 views
0

我愿做这一步,所以我想知道我怎么能:MySQL的:上表的表名是:从结果中选择

表(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

所以...我想查询表,获得DOC ument_id和template_id然后使用表b我想从表c中获取document_specific_columns。 PS:在表a中可以有更多的记录与相同的document_id但不同template_id 我猜意图是非常清楚的,唯一我不知道该怎么做的是引用子查询的FROM子句返回te template_table_name1到表

+0

我只看到表A和C之间的关系,B和C的样本数据和预期产出之间没有什么会更容易帮助你。 – 2010-08-28 18:59:40

回答

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,但您可以通过创建预准备语句来作弊。

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

+0

谢谢。实际上这就是我所做的。 – Srdjan 2011-03-28 10:07:03