我正在创建一个事件供稿,显示我的用户事件,但仅限于最后 5 行。
SELECT * FROM activity ORDER BY date desc LIMIT 5
问题是我不希望事件提要在任何时候都被同一用户弄乱,所以我想检索 user_id 彼此不同的最后 5 个结果。
我该怎么做呢?
最佳答案
如果每个用户没有多个max(date)
,你可以使用这个:
SELECT *
FROM activity
WHERE (user_id, `date`) IN (
SELECT * FROM (
SELECT user_id, max(`date`)
FROM activity
GROUP BY user_id
ORDER BY max(`date`) DESC
LIMIT 5) s
)
ORDER BY `date` DESC
请参阅 fiddle here .
关于php - 从表中选择每个 user_id 不同的所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15578986/