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

如何修复使用'Monitor'而非ID查询显示器采购记录的错误SQL语句

问题原因

你的SQL存在两个核心错误,导致统计结果异常:

  • 未添加Products和Orders两张表的关联条件,使用逗号分隔表的隐式连接方式会直接生成笛卡尔积,相当于Products中所有name='Monitor'的记录会和Orders里的全部订单记录逐一匹配,最终统计出来的是全量订单的数量总和
  • 使用了sum()聚合函数,但select子句中的非聚合字段name、Price没有对应添加GROUP BY子句,不符合聚合查询的语法规范,即使数据库非严格模式下可以执行,返回的结果也不符合预期

修复方案

如果你需要统计各款显示器的总采购量,使用以下修正后的SQL(注意如果你的表中关联产品的字段名不是product_id,替换成你实际的关联字段即可):

SELECT p.name, p.Price, SUM(o.quantity) AS total_purchase_quantity
FROM Products p
INNER JOIN Orders o ON p.product_id = o.product_id
WHERE p.name = 'Monitor'
GROUP BY p.name, p.Price;

如果你需要查询每一条显示器的采购明细记录,不需要统计总和,使用以下SQL:

SELECT p.name, p.Price, o.quantity, o.order_id -- 可自行补充需要展示的订单字段
FROM Products p
INNER JOIN Orders o ON p.product_id = o.product_id
WHERE p.name = 'Monitor';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:24:03