[英]Mysql query select sum where clause
我有一個 MySQL 數據庫,其中有 2 個表,稱為 mutaties 和 products
例如,在突變中,您有一個 product_id(對應於產品數據庫中的產品 ID。
所以我們現在使用突變數據庫中的 SUM(aantal) 獲取當前庫存。
產品表對每個產品都有一個閾值。
我現在想要做的是設置一個 mysql 查詢,該查詢獲取當前庫存低於閾值的每個產品。
現在我有這個:
SELECT *
FROM products
, mutaties
WHERE SUM(aantal) < threshold
但我收到錯誤無效使用組功能。
做這個的最好方式是什么?
這是我的產品表:在此處輸入圖片描述
列的翻譯是 id,brand,model,threshold
就像 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
。products
有threshold
的0,他們可能也不會出現在所有。group by
expression
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.