我正在使用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";
答案 0 :(得分:0)
我假设您说的是第二个语句在语法上是不正确的,而不是只产生错误的结果....
我暂时没有使用mySQL,但SQL的一般规则是使用像count
这样的聚合函数,你还需要使用Group By
子句。