2013-08-21 73 views
1

我有一个临时表:MySQL的插入多行多列到一个临时表

CREATE TEMPORARY TABLE IF NOT EXISTS `temp` 
AS (
SELECT COUNT(*) as count, YEAR(end_date) 
FROM a 
WHERE column_1 = "some_condition" 
GROUP BY YEAR(end_date) 
); 

然后我尝试在新的值添加到这个表

INSERT INTO temp (count, year) 
VALUES(
    SELECT COUNT(*) as count, year(end_date) 
    FROM b 
    WHERE column_1 = "some_condition" 
    GROUP BY YEAR(end_date) 
); 

而此行抛出错误。 给出的错误:

1064 - 您的SQL语法错误;检查对应于你的MySQL服务器版本正确的语法使用

附近手册“SELECT COUNT(*)的数量,一年(END_DATE)从B
WHERE COLUMN_1 =‘一些条件’”在3线

我想要实现的是新的行和列被选中插入到临时表中。有任何想法吗?

第一查询后,临时表应该是这样的:

count year 
3  2012 
20  2013 
104 2011 

而且从第二个查询所选择的结果看起来是这样的

count year 
6  2013 

预期成果:

count year 
3  2012 
20  2013 
104 2011 
6  2013 
+1

“这条线会引发错误。”您应该编辑您的问题并添加该错误。 – 2013-08-21 03:39:58

回答