我正在尝试编写类似于以下内容的查询:
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 或者是否有任何其他方式可以获得所需的结果,我将非常感激。