MySQL语句计算每个主题的帖子nr不起作用

时间:2014-03-07 13:40:52

标签: mysql

我正在使用php,mysql和html构建一个论坛。系统使用四个表(MESSAGES_CATEGORIES,MESSAGES_TOPICS,MESSAGES_POSTS,CRM)来保存类别,主题,帖子和客户联系详细信息。下面的第二个sql语句应该检索特定类别的所有主题的列表,包括auto的相关firstname和lastname加上每个主题的发布消息数。

计算每个主题发布消息数量的第二个语句的部分似乎出错了,我很难找到正确的语法。

//this sql statement without counting works fine
$sqlquery0 = "SELECT MESSAGES_TOPICS.*, CRM.firstname,CRM.lastname "
        . "FROM MESSAGES_TOPICS INNER JOIN CRM "
        . "ON MESSAGES_TOPICS.topic_by=CRM.userid AND topic_cat = ".$val1." "
        . "ORDER BY MESSAGES_TOPICS.topic_date DESC";

//this sql statement with counting does not work
$sqlquery0 = "SELECT MESSAGES_TOPICS.*, CRM.firstname,CRM.lastname, COUNT(MESSAGES_POSTS.post_id) "
        . "FROM MESSAGES_TOPICS INNER JOIN CRM "
        . "ON MESSAGES_TOPICS.topic_by=CRM.userid AND topic_cat = ".$val1." "
            . "INNER JOIN MESSAGES_POSTS "
        . "ORDER BY MESSAGES_TOPICS.topic_date DESC";

1 个答案:

答案 0 :(得分:0)

我假设您说的是第二个语句在语法上是不正确的,而不是只产生错误的结果....

我暂时没有使用mySQL,但SQL的一般规则是使用像count这样的聚合函数,你还需要使用Group By子句。