Mysql查询select sum where子句

克拉斯·伊德克

我有一个 MySQL 数据库,其中有 2 个表,称为 mutaties 和 products

例如,在突变中,您有一个 product_id(对应于产品数据库中的产品 ID。

所以我们现在使用突变数据库中的 SUM(aantal) 获取当前库存。

产品表对每个产品都有一个阈值。

我现在想要做的是设置一个 mysql 查询,该查询获取当前库存低于阈值的每个产品。

现在我有这个:

SELECT * 
  FROM products
     , mutaties 
 WHERE SUM(aantal) < threshold

但我收到错误无效使用组功能。

做这个的最好方式是什么?

这是我的产品表:在此处输入图片描述

列的翻译是 id,brand,model,threshold

这是我的突变数据库:此处输入图像描述,这里是列的突变表翻译:id product_id 数量日期描述

托马斯·切尼奇

就像 jarlh 在该评论中所写的那样,您可能应该使用现代JOIN语法。因此,这样的事情应该有效:

select p.id, sum(m.aantal) as aantalsum
from products as p
join mutaties as m on (m.product_id = p.id)
group by p.id, p.threshold
having sum(m.aantal) < p.threshold

注意事项:

  • 如果您products没有mutaties,它们将不会出现在该选择中。如果您需要这些,请left outer join改用。
  • 您的productsathreshold为 0,它们可能也根本不会出现。
  • 如果您的选择列表中需要更多列,您还需要将它们添加到group by表达式中

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章