2014-01-22 3 views
0

Моя проблема у меня есть вставки, которая обновляет запрос на дубликат ключа, и это, как показано ниже:дублированием KEY UPDATE - необходимую помощь

INSERT INTO TABLE 
    (COL1, COL2, COL3 , ETC...) 
SELECT 
    COLA1, COLA2, COUNT(1) , ETC... 
FROM TABLE2 
WHERE 'CONDITION' 
GROUP BY COL1, COL2, COL3 
    ON DUPLICATE KEY UPDATE COL1=VALUES(COLA1), COL3=COUNT(1) 

Этот запрос возвращает ошибку: общая ошибка: 1111 Invalid использование групповой функции SQL

COL1, COD2, COL3 ARE COMPLEX KEY. 

ответ

1

Попробуйте это:

INSERT INTO TABLE(COL1, COL2, COL3, ETC...) 
    SELECT COLA1, COLA2, COUNT(1), ETC... 
    FROM TABLE2 
    WHERE 'CONDITION' 
    GROUP BY COL1, COL2, COL3 
    ON DUPLICATE KEY UPDATE COL1 = VALUES(COL1), COL3 = VALUES(COL3); 

То есть, относятся к именам в values1, а не выражения в инструкции select.

+0

Благодарим вас за это сообщение. Это верно. Также есть другой способ, указанный в этом сообщении: http://stackoverflow.com/questions/16935896/mysql-on-duplicate-key-update-while-inserting-a-result-set-from-a-query – BrokenPixel

Смежные вопросы