2013-08-21 107 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

回答