簡體   English   中英

MySQL將多列和行插入臨時表

[英]MySQL Inserting Multiple Columns and Rows into a Temporary Table

我有一張臨時表:

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(*)as count,year(end_date)FROM 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

在Insert語句中嘗試不使用“VALUES”語法: http//www.w3schools.com/sql/sql_insert_into_select.asp

INSERT INTO `temp` (`count`, `year`)
  SELECT
    COUNT(*),
    year(`end_date`)
  FROM `b`
  WHERE `column_`` = "condition" GROUP BY YEAR(end_date);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM