You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL查询求助:查找总数量大于50的产品

解决MySQL查询总数量大于50的产品问题

针对你的需求,这里提供两种可行的MySQL查询语句,均能正确筛选出总订单数量大于50的产品,并关联获取产品的详细信息:

方法一:子查询先统计再关联

SELECT p.product_id, p.product_name, p.price, o.total_quantity
FROM products p
INNER JOIN (
    SELECT product_id, SUM(quantity) AS total_quantity
    FROM orders
    GROUP BY product_id
    HAVING SUM(quantity) > 50
) o ON p.product_id = o.product_id;

逻辑说明:

  1. 子查询先对orders表按product_id分组,计算每个产品的总订单数量total_quantity
  2. 通过HAVING子句筛选出总数量大于50的产品ID
  3. 将筛选结果与products表关联,获取对应的产品名称、价格等信息

方法二:关联后聚合筛选

SELECT p.product_id, p.product_name, p.price, SUM(o.quantity) AS total_quantity
FROM products p
INNER JOIN orders o ON p.product_id = o.product_id
GROUP BY p.product_id, p.product_name, p.price
HAVING SUM(o.quantity) > 50;

逻辑说明:

  1. 先通过product_id将products表与orders表做内连接
  2. 按产品的唯一标识(product_id、product_name、price)分组,计算每个产品的总订单数量
  3. 用HAVING子句过滤出总数量大于50的结果集

注意事项:

  • 两种写法均使用内连接(INNER JOIN),只会返回有订单记录且总数量达标产品;若需包含无订单的产品(此类产品总数量为0,不会满足筛选条件,实际无影响),可替换为LEFT JOIN
  • 若你的MySQL启用了ONLY_FULL_GROUP_BY模式,GROUP BY子句需包含所有非聚合字段(即示例中的product_id、product_name、price),避免语法错误

内容的提问来源于stack exchange,提问作者geroge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:44:59