我有两个表,其中包含不同的字段,只有一个公共字段作为主键/外键。如何创建具有新字段的临时表,同时从两个现有表中选择一些字段?我需要在临时表创建后插入一次值。
情况1:当我需要在一次单击中生成两个现有表的一些报告时,我需要这样做,如果不存在则创建表,在其中插入值,必须产生结果。必须一键完成。
情况2:我在表2中有排名字段。根据排名字段,可以在新临时表中创建新字段。例如:如果rank> 1&lt; 100,则必须在临时表中创建rank1字段。如果等级> 101 <200,则必须创建rank2字段。
情况3:如果select查询生成了多个记录,那么我想在一行中插入它而不会产生太多行
例如:
如果我按以下方式产生一些结果
日期排名
11-01-2015 11
11-01-2015 120
11-01-2015 210
我需要以这样的方式创建临时表,以便将所有等级与其中只有一个日期字段组合,并且rank1 = 11,rank2 = 120和rank3 = 210
然后我可以在单个查询中获得所有排名的日期。
答案 0 :(得分:1)
情况2:
CREATE TEMPORARY TABLE tablename AS
SELECT date,
MAX(CASE WHEN rank BETWEEN 1 AND 100 THEN rank END) AS rank1,
MAX(CASE WHEN rank BETWEEN 101 AND 200 THEN rank END) AS rank2,
MAX(CASE WHEN rank BETWEEN 201 AND 300 THEN rank END) AS rank3,
MAX(CASE WHEN rank > 300 THEN rank END) AS rank4
FROM table2
GROUP BY date