2011-11-08 107 views
0

我需要構建一個臨時表,其中的字段名稱是另一個表的列中的值。這個第二張表可以(也將會)在網站開發過程中發生變化,所以我無法將字段名稱硬編碼到我的例程中。將列中的值用作新表的字段名稱

至於我的意思,認爲這是源表的例子,恰當地命名爲「sourceTable會」:

field_id fieldname 
1   profile_name 
2   profile_surname 
5   profile_address_street 

那我就需要做一個表,看起來像這樣:

profile_name profile_surname profile_address_street 
John   Doe    Baker Street 

我嘗試這樣做:

create temporary table if not exists newtable(
    select fieldname from sourcetable 
); 

但是返回只包含從「酸的「字段名」列的表cetable」。有誰知道一個乾淨而快速的方法來做到這一點?

回答

1

在我看來,最簡單,最乾淨的方法是建立CREATE [TEMPORARY] TABLE(甚至是普通的SELECT查詢 - 這取決於你如何使用的東西)聲明在應用程序代碼中sourcetable使用數據,以及剛剛運行它。

你將無法在那裏使用純SQL進行靈活操作,也可能使用存儲過程(但我不是100%確定)。

+0

嗨羅曼, 感謝您的快速反應。我已經想到了這樣的事情的確如此,但是項目的混合技術方法要求所有這些都按照你所提到的存儲過程而不是在應用程序邏輯中完成。 – GijsW

+0

@GijsW呃。你將不得不遭受巨大的痛苦,我對此感到抱歉... – Romain

相關問題