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

MySQL LEFT JOIN查询报错:求A类产品无折扣销量的SQL语句修复求助

问题排查与修正方案

原SQL错误点

  • 子查询中SUM(qty)前多了一个未闭合的多余左括号,不符合SQL语法规范,直接触发编译报错
  • 子查询仅返回了求和后的non_disc_qty字段,没有包含关联所需的product_id字段,后续使用USING (product_id)做关联时无法匹配到对应字段,也会触发报错
  • 最后过滤条件的category字段未加表别名,若两张表存在同名字段会出现歧义报错,属于不规范写法

修正后的SQL

SELECT pc.product_id, s.non_disc_qty
FROM productcategory pc
LEFT JOIN (
  SELECT product_id, SUM(qty) AS non_disc_qty
  FROM sale
  WHERE discount = 0
  GROUP BY product_id
) AS s
USING (product_id)
WHERE pc.category = 'A';

可选优化

如果需要让没有无折扣销售记录的产品,总数量显示为0而非NULL,可以使用COALESCE函数处理:

SELECT pc.product_id, COALESCE(s.non_disc_qty, 0) AS non_disc_qty
FROM productcategory pc
LEFT JOIN (
  SELECT product_id, SUM(qty) AS non_disc_qty
  FROM sale
  WHERE discount = 0
  GROUP BY product_id
) AS s
USING (product_id)
WHERE pc.category = 'A';

内容的提问来源于stack exchange,提问作者Simon S.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 18:21:03