执行此查询时,我总是遇到语法错误。什么想法我做错了什么?
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;副本中使用别名"。我还尝试过再次计算"重复"部分。但也会出错。
答案 0 :(得分:1)
问题在于:
... UPDATE buy=VALUES(a), orders=VALUES(b)
^ ^
a
和b
在此上下文中无效。在INSERT的列列表中引用列的名称以获取将插入该列的值(如果插入成功)
... UPDATE buy=VALUES(buy), orders=VALUES(orders)
^^^ ^^^^^^
(如果SELECT中的表达式是否具有别名,则无关紧要;引用SELECT
子句中ON DUPLICATE KEY
的表达式无效。