插入,选择& ON重复键

时间:2017-11-13 22:58:04

标签: mysql

执行此查询时,我总是遇到语法错误。什么想法我做错了什么?

INSERT INTO cookies (cookie, buy, orders, ordervalue) SELECT o.uid cookie,  'eby' as a, COUNT(o.price ) as b , ROUND( SUM(o.price) , 2 ) umsatz 
        FROM  `Orders` o
        WHERE uid !=  ''
        GROUP BY uid ON DUPLICATE KEY UPDATE  buy=VALUES(a), orders=VALUES(b);

我不确定是否可以在#34;副本中使用别名"。我还尝试过再次计算"重复"部分。但也会出错。

1 个答案:

答案 0 :(得分:1)

问题在于:

  ... UPDATE buy=VALUES(a), orders=VALUES(b)
                        ^                 ^

ab在此上下文中无效。在INSERT的列列表中引用列的名称以获取将插入该列的值(如果插入成功)

  ... UPDATE buy=VALUES(buy), orders=VALUES(orders)
                        ^^^                 ^^^^^^

(如果SELECT中的表达式是否具有别名,则无关紧要;引用SELECT子句中ON DUPLICATE KEY的表达式无效。