2012-03-10 4 views
1

현재 간단한 PHP + MySQL 포럼을 구축하고 있지만 올바른 형식으로 정보를 표시하는 데 문제가 있습니다.PHP + MySQL 포럼 디스플레이

나의 현재 SQL 코드는 내가 가진 문제는 오른쪽 카테고리에서 모든 것을 다시 제공하지만,이 범주가 아니라 마지막의 첫 번째 결과를 다시 가져 오는 것입니다

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으로 그룹화를 시작해야합니다. 그러나 단 하나의 데이터 세트를 얻는 데 너무 많은 결과가 정렬되는 이유를 이해할 수 없습니다.

ORDER BY forum_posts.date DESC LIMIT 1; 

이게 원하는가요? 또한 이것은 당신을 도울 수 있습니다 : Select last row in MySQL.