各ユーザーからの最後の投稿のリストを表示しようとしています。ただし、ID でグループ化すると、最後の投稿ではなく最初の投稿が取得されます。UID でグループ化し、最大の行のみを表示するにはどうすればよいDateですか?
これは私が今試していることです:
SELECT * FROM Posts GROUP BY `UID` ORDER BY `Date` DESC
各ユーザーからの最後の投稿のリストを表示しようとしています。ただし、ID でグループ化すると、最後の投稿ではなく最初の投稿が取得されます。UID でグループ化し、最大の行のみを表示するにはどうすればよいDateですか?
これは私が今試していることです:
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.maxdate