각 사용자의 마지막 게시물이있는 목록을 표시하려고합니다. 그러나 ID별로 그룹화하면 마지막 게시물 대신 첫 번째 게시물을 얻습니다. UID별로 그룹화하고 가장 큰 행을 표시하려면 어떻게해야합니까? Date
? ,UserID의 MySQL 그룹이 마지막 게시물 만 표시합니까?
SELECT * FROM Posts GROUP BY `UID` ORDER BY `Date` DESC
각 사용자의 마지막 게시물이있는 목록을 표시하려고합니다. 그러나 ID별로 그룹화하면 마지막 게시물 대신 첫 번째 게시물을 얻습니다. UID별로 그룹화하고 가장 큰 행을 표시하려면 어떻게해야합니까? Date
? ,UserID의 MySQL 그룹이 마지막 게시물 만 표시합니까?
SELECT * FROM Posts GROUP BY `UID` ORDER BY `Date` DESC
당신 때문에 사용자 당 최대 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
당신은 조인을 사용하여이 작업을 수행 할 수있는 최대 날짜를 얻기 위해, 다음 레코드 만 선택 :
이
내가 지금 노력하고있어입니다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
이 쿼리는 꽤 많이, 전체 테이블을 반환해야합니다 ... 당신도 각 사용자에서 가장 오래된 게시물을 점점 확실해? – Icarus