我正在尝试编写类似于以下查询的语句:
INSERT INTO SomeTable(field1, field2)
SELECT 'blah' AS field1,
MAX(AnotherTable.number) AS field2
FROM AnotherTable
ON DUPLICATE KEY
UPDATE field1= 'blah', field2 = MAX(AnotherTable.number)
我遇到了错误代码:1111,无效的组函数使用。
阅读 MySql 文档:
http://dev.mysql.com/doc/refman/5.1/en/insert-select.html
"感兴趣的行是:""在ON DUPLICATE KEY UPDATE的值部分中,您可以引用其他表中的列,只要您不在SELECT部分使用GROUP BY。一个副作用是您必须在值部分限定非唯一列名。"
"这是我看到的问题吗?我没有在Select语句中特别使用GROUP BY,但通过使用聚合函数(Max),那么我可能会隐式地分组。"
"如果有人确定我是否隐式地执行了GROUP BY或者是否有其他方法可以得到所需的结果,我将非常感激。"