我正在使用php,mysql和html構建一個論壇。系統使用四個表格(MESSAGES_CATEGORIES,MESSAGES_TOPICS,MESSAGES_POSTS,CRM)來保存類別,主題,帖子和客戶聯繫方式。下面的第二個sql語句應該檢索特定類別的所有主題列表,包括auto的相關名字和姓氏以及每個主題發佈的郵件數量。MySQL語句計算每個帖子不能正常工作的帖子
第二個用於統計每個主題的發佈消息數量的部分似乎出錯了,我很難得到正確的語法。
//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";
您尚未定義「*似乎出錯*」的含義。您尚未指定用於加入「MESSAGES_POSTS」的謂詞。你正在使用一個沒有'GROUP BY'子句的集合函數,所以MySQL會隱式地分組所有記錄(併爲其他列選擇不確定的值)。 – eggyal
您的帖子表中沒有ON子句 - 並且您沒有GROUP BY子句 – Strawberry