select를 사용하여 mysql update query를 실행하려고하는데 오류가 발생합니다. '근처 사용할 수있는 권리 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인 (Impressions_chg, 당신은 당신의 SQL 구문에 오류가 있습니다 - 전용 "# 1064Mysql select with join select with
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)
그러나 내가 갖는 : 쿼리는 이것이다 라인 1 "
사람이
감사합니다!
MySQL에서는'SET (a, b) = (value_a, value_b)'를 사용할 수 없습니다. –
실제로 기사를 확인한 결과 그러한 방법이 있습니다. http://karlssonondatabases.blogspot.com/2009/01/multicolumn-update-with-subquery-mysql.html – pocko
예, 가능합니다. 하지만이 문법은 아닙니다. 'UPDATE'를 위해 MySQL 구문을 사용하여 구문을 다시 작성해야합니다. –