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

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

Barbara Streisand
Barbara Streisand原创
2025-01-11 22:42:41842浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn