无法正确计算GROUP BY

时间:2011-03-31 20:24:57

标签: php mysql lamp

SQL:

SELECT
  COUNT(*)
FROM bb_posts post
LEFT JOIN bb_topics topic
  ON topic.topic_id = post.topic_id
LEFT JOIN bb_forums forum
  ON forum.forum_id = topic.forum_id
LEFT JOIN wp_bp_groups_groupmeta group_meta
  ON topic.forum_id = group_meta.meta_value
LEFT JOIN wp_bp_groups `group`
  ON group_meta.group_id = `group`.id
LEFT JOIN wp_bp_groups `parent`
  ON `group`.parent_id = `parent`.id
WHERE group_meta.meta_key = 'forum_id' &&
  (topic_title LIKE '%searchterm%' ||
  MATCH(post.post_text) AGAINST('searchterm')) &&
  topic_status = 0
GROUP BY post.topic_id;

返回每个主题的所有帖子的计数。我想找到所有主题的计数。我知道我可以在php中使用返回的行进行count(),但我想要一个SQL解决方案。

2
2
4
11
3
3
2

而不是行的总数。

2 个答案:

答案 0 :(得分:0)

如果您想要总计数,只需删除GROUP BY post.topic_id

即可

<强>更新

抱歉,我误解了你的问题。你可以通过

来做到这一点
SELECT COUNT(*) FROM
([your original query here])a

答案 1 :(得分:0)

如果我理解正确你想要返回一行,它总结当前返回的所有行的值,是否正确?

如果是,请从查询中删除该组。