我想運行mysql更新查詢與選擇,但我得到一個錯誤。查詢是這樣的:與選擇加入Mysql更新查詢
UPDATE keywords_stats_google_temp SET (Impressions_chg, Clicks_chg, AveragePosition_chg, Ctr_chg, AverageCpc_chg, CurrentMaxCpc_chg, FreeJoins_chg, PaidJoins_chg) = (SELECT
SUM(Impressions) AS Impressions,
SUM(Clicks) AS Clicks,
SUM(Impressions*AveragePosition)/SUM(Impressions) AS AveragePosition,
(SUM(Clicks)*revenue_price)/SUM(Impressions) AS Ctr,
SUM(Spend)/SUM(Clicks) AS AverageCpc,
CurrentMaxCpc,
SUM(free_joins) AS FreeJoins,
SUM(paid_joins) AS PaidJoins
FROM (SELECT KeywordId FROM keywords_stats_google_temp) a JOIN keywords_stats_google_naughtymeetings b ON b.KeywordId = a.KeywordId WHERE b.TimePeriod >= '2012-04-01 00:00:00'
AND b.TimePeriod <= '2012-04-23 00:00:00' GROUP BY a.KeywordId, MatchType)
但我發現了唯一的「#1064 - 你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近的「正確的語法手冊(Impressions_chg ,Clicks_chg,AveragePosition_chg,Ctr_chg,AverageCpc_chg,CURR」第1" 行
任何人可以幫助我嗎?
謝謝!
你不能在MySQL中有SET(a,b)=(value_a,value_b)'。 –
其實我檢查了一篇文章,有這樣一種方法:http://karlssonondatabases.blogspot.com/2009/01/multicolumn-update-with-subquery-mysql.html – pocko
是的,這是可能的。但不是這個語法。你必須用'UPDATE'的MySQL語法來重寫語句。 –