2012-08-13 5 views
0

각 사용자의 마지막 게시물이있는 목록을 표시하려고합니다. 그러나 ID별로 그룹화하면 마지막 게시물 대신 첫 번째 게시물을 얻습니다. UID별로 그룹화하고 가장 큰 행을 표시하려면 어떻게해야합니까? Date? ,UserID의 MySQL 그룹이 마지막 게시물 만 표시합니까?

SELECT * FROM Posts GROUP BY `UID` ORDER BY `Date` DESC 
+0

이 쿼리는 꽤 많이, 전체 테이블을 반환해야합니다 ... 당신도 각 사용자에서 가장 오래된 게시물을 점점 확실해? – Icarus

답변

0

당신 때문에 사용자 당 최대 Date를 원하는, 당신이 사용할 수있는 MySQL의의 MAX() :

SELECT MAX(`Date`), * FROM Posts GROUP BY `UID` 

당신은 또한 너무 HAVING 절을 지정할 수 있습니다

SELECT * 
FROM Posts 
GROUP BY `UID` 
HAVING `Date` = MAX(`Date`) 
ORDER BY `Date` DESC 
0

당신은 조인을 사용하여이 작업을 수행 할 수있는 최대 날짜를 얻기 위해, 다음 레코드 만 선택 :

내가 지금 노력하고있어입니다

select p.* 
from posts p join 
    (select uid, max(date) as maxdate 
     from posts p 
     group by uid 
    ) pmax 
    on p.uid = pmax.uid and 
     p.date = pmax.date 
관련 문제