سؤال

My problem is i have an insert that updates the query on duplicate key and it is like the one below:

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)

THIS QUERY RETURNS AN ERROR: General error: 1111 Invalid use of group function SQL

COL1, COD2, COL3 ARE COMPLEX KEY.
هل كانت مفيدة؟

المحلول

Try this:

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);

That is, refer to the names in the values1 statement, not the expressions in the select statement.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top