0

各ユーザーからの最後の投稿のリストを表示しようとしています。ただし、ID でグループ化すると、最後の投稿ではなく最初の投稿が取得されます。UID でグループ化し、最大の行のみを表示するにはどうすればよいDateですか?

これは私が今試していることです:

SELECT * FROM Posts GROUP BY `UID` ORDER BY `Date` DESC
4

2 に答える 2

2

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
于 2012-08-13T19:00:09.317 に答える
1

結合を使用してこれを実行し、最大日付を取得してから、それらのレコードのみを選択できます。

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.maxdate
于 2012-08-13T18:59:06.647 に答える