【发布时间】:2015-04-09 07:03:59
【问题描述】:
我有两张表,其中包含不同的字段,并且只有一个公共字段作为主键/外键。如何在其中创建包含新字段的临时表,同时从两个现有表中选择一些字段?我需要在创建临时表后插入一次值。
情况 1:当我需要从两个现有表中单击生成一些报告时,我需要这样做,例如创建表,如果不存在,则在其中插入值,必须产生结果。只需单击一下即可完成所有操作。
情况2:我在表2中有rank字段。根据rank字段,可以在新的临时表中创建新字段。例如:如果 rank>1101
情况 3:如果选择查询生成记录数,那么我想将其插入一行本身,而不会产生太多行
例如:
如果我按照以下方式产生一些结果
日期排名
11-01-2015 11
11-01-2015 120
11-01-2015 210
我需要以这样一种方式创建临时表,以将所有排名与其中只有一个日期字段以及 rank1=11、rank2=120 和 rank3=210 结合起来
然后我可以在单个查询中通过日期获得所有排名。
【问题讨论】:
-
编写一个查询,返回您需要的数据。然后使用
CREATE TEMPORARY TABLE tablename AS SELECT ...将查询放在最后。 -
请考虑我的情况2。告诉我如何用它创建表
-
您需要编写动态 SQL 来执行此操作。但是为什么要在临时表中使用不同的列名,如何知道查询时要使用哪一列呢?如果你需要这样做,你可能做错了。
-
我什至不确定我是否理解情况 2。表的不同行不能有不同的字段名称。也许您对我的解释不够清楚。显示一些示例输入以及您希望临时表的外观。
-
我也不懂#3。请举例说明。如果你想合并多行的数据,也许你正在寻找
GROUP_CONCAT。