我需要构建一个临时表,其中字段名称是另一个表的列中的值。第二个表可以(并且将会)在网站开发期间发生变化,因此我无法将字段名称硬编码到我的例程中。
作为我的意思的一个例子,将其视为源表,恰当地命名为“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
);
但是返回的表只包含“sourcetable”中的“fieldname”列。有谁知道一个干净,快速的方法吗?
答案 0 :(得分:1)
在我看来,最简单,最干净的方法是使用数据在应用程序代码中构建CREATE [TEMPORARY] TABLE
(甚至是一个普通的SELECT
查询 - 具体取决于你如何使用东西)语句sourcetable
,正好运行它。
您无法在纯SQL中执行任何灵活操作,也可能无法使用存储过程(但我不是100%肯定)。