我正在使用旧的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."'"
错误是
如果没有GROUP BY子句,混合GROUP列(MIN(),MAX(),COUNT(),...)没有GROUP列是非法的
我希望有人可以帮助我
答案 0 :(得分:1)
与错误一样,您不能选择聚合函数(如COUNT),也不能显式(使用GROUP BY)或隐式(仅通过选择聚合)对行进行分组。用不太技术性的术语表示 - 你告诉数据库,“按这个用户名查找所有帖子,他们所属的线程,帖子数量”,数据库正在回答你,“帖子数量在什么?“。
所以你需要更加具体。如果你真正想要的是:
p.*
,然后添加{{1}到查询的结尾。GROUP BY t.threadid
才能获得总数发帖数。