mysql - 使用内部联接更新 = 错误代码 : 1111. 组函数的使用无效

标签 mysql sql inner-join mysql-error-1111

执行下面的查询时,我在帖子标题中收到 1111 错误。基本上,我尝试使用表 2 (search_upload_quotes) 中的数据更新表 1 (special_valuation_temp)。我想要获取更新表 1 的最小和最大报值(value)。

UPDATE special_valuation_temp svt 
       INNER JOIN search_upload_quotes suq 
               ON ( svt.clei = suq.clei 
                     OR svt.partnumber = suq.partnumber ) 
SET    svt.vendor_low = ( Min(suq.priceperunit) * svt.qty ), 
       svt.vendor_high = ( Max(suq.priceperunit) * svt.qty ) 
WHERE  suq.submitted = 1 
       AND suq.priceperunit > 0;

我似乎无法在 SET 子句中使用 MIN() 和 MAX() 函数。还有其他方法可以做到这一点吗?

最佳答案

是的,如果不使用group by,这是不正确的。您可以先在子查询中获取 min()max() 值,然后与该子查询结果执行 join 并进行计算按原样。

关于mysql - 使用内部联接更新 = 错误代码 : 1111. 组函数的使用无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40780902/

相关文章:

sql - 在 JOIN 查询中使用 LIKE

java - 如何根据 NOT 条件加入 2 个实体

php - 在 id=$id 处更新

php - SQL 查询后跟内连接

mysql - 如何查找开始日期在特定天数内每个用户的收入数量

php - 使用 php 将图片从数据库加载到 jquery slider

MySQL内部查询

mysql - 获取字符串的数字/规范化表示以帮助 DB 中标题的 'natural sort ordering'

MySql 错误 - 表已存在

mysql - 如何使用另一个条件(例如 "name"而不是mysql中的id)从共享id的数据库中删除行