首页 > 数据库 > mysql教程 > MySQL 错误:'组函数的使用无效”—WHERE 与 HAVING:何时应该使用哪个?

MySQL 错误:'组函数的使用无效”—WHERE 与 HAVING:何时应该使用哪个?

Barbara Streisand
发布: 2025-01-11 22:42:41
原创
778 人浏览过

MySQL Error:

MySQL 错误:分组函数使用无效

在使用 MySQL 时遇到“分组函数使用无效”错误,务必理解 WHERE 和 HAVING 子句的区别。

在提供的查询中,目标是找出至少由两个供应商提供的零件。最初,您尝试使用 WHERE 子句将每个 pid 与计算 sids 的子查询的输出进行比较。但是,MySQL 在聚合之前执行 WHERE,导致这种方法无效。

正确的解决方案是使用 HAVING 子句。HAVING 过滤聚合函数(如 COUNT())的结果,允许您执行聚合后的计算。通过使用 HAVING 重写子查询,如答案所示:

<code class="language-sql">(
  SELECT c2.pid
  FROM Catalog AS c2
  WHERE c2.pid = c1.pid
  HAVING COUNT(c2.sid) >= 2
)</code>
登录后复制

您可以获得所需的结果。HAVING 子句将确保最终输出中只包含至少有两个供应商的零件。

以上是MySQL 错误:'组函数的使用无效”—WHERE 与 HAVING:何时应该使用哪个?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板