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

查询supplies表中出现多次的供应商名称的SQL问题排查

SQL问题排查与修正方案

原代码错误点

  • 缺少关联表声明:FROM子句仅指定了supplier表,但WHERE条件中引用了supplies表的字段,没有定义两表的关联规则
  • 字段拼写错误:supplies.supplerNum存在笔误,正确字段名为supplierNum
  • 聚合规则缺失:使用COUNT()聚合函数时未添加GROUP BY分组逻辑,无法按供应商维度统计出现次数,HAVING子句的过滤逻辑也无法正常生效

正确实现SQL

方案1:JOIN关联后分组过滤

适合需要同时展示供应商其他维度信息的场景:

SELECT s.name
FROM supplier s
INNER JOIN supplies sp 
  ON s.supplierNum = sp.supplierNum
GROUP BY s.supplierNum, s.name
HAVING COUNT(*) > 1;

方案2:子查询先过滤再关联

性能更优,先在supplies表完成分组统计过滤,再关联取供应商名称:

SELECT name
FROM supplier
WHERE supplierNum IN (
    SELECT supplierNum
    FROM supplies
    GROUP BY supplierNum
    HAVING COUNT(*) > 1
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:15:01