gpt4 book ai didi

php - 如果没有 GROUP BY 子句,则将 GROUP 列(MIN()、MAX()、COUNT()、...)与没有 GROUP 列的混合是非法的

转载 作者:行者123 更新时间:2023-11-29 00:48:26 24 4
gpt4 key购买 nike

我使用的是旧的 PHP 脚本,并且此查询有错误。由于我没有使用 mysql 的经验,因此无法修复它。

"SELECT COUNT(p.postid) AS pid, p.*, t.* FROM ".TABLE_PREFIX."post AS p 
INNER JOIN ".TABLE_PREFIX."thread AS t ON (p.threadid = t.threadid) WHERE
p.username='".$uname."'"

错误是

Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

我希望有人能帮助我

最佳答案

如错误所述,如果不显式(使用 GROUP BY)或隐式(仅选择聚合)对行进行分组,则无法选择聚合函数,例如 COUNT。用不太专业的术语来说——你告诉数据库,“查找这个用户名的所有帖子,它们所属的线程,以及帖子的数量”,数据库回答你,“帖子的数量在什么?”。

因此您需要更加具体。如果你真正想要的是:

  • 如果您实际上并不关心所有单独的帖子,而您只想要线程和该用户每个线程的帖子数,请从 SELECT 中删除 p.*,然后将 GROUP BY t.threadid 添加到查询的末尾。
  • 如果您想要帖子总数以及所有帖子和主题,只需计算结果行即可。
  • 如果您想要您选择的主题中所有用户的帖子总数,这将使查询复杂得多,因为您需要再次加入 post 以获取帖子总数。
  • 如果您实际上根本不需要计数,请将其从查询中删除。 :)

关于php - 如果没有 GROUP BY 子句,则将 GROUP 列(MIN()、MAX()、COUNT()、...)与没有 GROUP 列的混合是非法的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9547802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com