各ユーザーからの最後の投稿のリストを表示しようとしています。ただし、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