php - 从表中选择每个 user_id 不同的所有列

标签 php mysql sql

我正在创建一个事件供稿,显示我的用户事件,但仅限于最后 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/

相关文章:

php无法执行mysql查询转义

mysql - 按年份连接 SQL 结果(年份、品牌、型号)

mysql - 简化MYSQL查询

mysql - 查找表中特定组的值的总和

sql - 通过优先考虑分类值来删除重复项

mysql - 将数据从 table1 复制到 table2,数据类型、名称和附加列略有不同

php - PHP 中的 free() 函数有什么作用?

php - 如何更改 Yii2 中 Controller 的默认 View ?

php - 如何 UNION ALL 两个 SELECT 语句?

php - PhalconPHP-如何向用户显示500错误