2012-03-10 64 views
1

私は現在、PHP + MySQLフォーラムを構築していますが、情報を正しい形式で表示することに問題があります。PHP + MySQLフォーラム表示

私の現在のSQLコードは、私が持っている問題は、それが適切なカテゴリですべてを戻しますが、それは、カテゴリではなく、最後の1の最初の結果を持ち帰ることです

SELECT forum_posts.catId, forum_posts.postId, forum_posts.date, forum_posts.message, 
    forum_posts.userId, users.userId, users.username, forum_thread.threadId, forum_thread.subjectTitle 
    FROM forum_posts 
    LEFT JOIN forum_thread ON forum_posts.threadId = forum_thread.threadId 
    LEFT JOIN users ON users.userId = forum_posts.userId 
    GROUP BY forum_posts.catId 
    ORDER BY forum_posts.postId DESC, forum_posts.date DESC, forum_posts.catId ASC 

です。

各カテゴリの最後の返信を表示するだけです。

何卒よろしくお願いいたします。ありがとうございます。

答えて

1

クエリは、一連の行を返す必要があります。結果を1要素に制限してください。結果を降順で並べ替えると、最後の項目が表示されます。

ORDER BY ... DESC LIMIT 1 

私はあなたがpostIdまたはdateによって最新のエントリを見つけるかどうかわかりません。日付で見つけた場合は、dateでグルーピングを開始する必要があります。 しかし、データセットを1つしか取得できないほど結果を並べ替える理由はわかりません。

ORDER BY forum_posts.date DESC LIMIT 1; 

これは必要なものですか?さらに、これはあなたに役立ちます:Select last row in MySQL

関連する問題