2010-08-28 35 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