MySQL:带有描述顺序问题的多个分组依据

标签 mysql group-by sql-order-by

我已经访问过MySQL order by before group by对于 Single Group By 来说工作正常。我对 2 个按列分组有疑问。

我有一个名为“messages”的下表。消息是用户帖子的评论

id | posts_id | from_user_id | to_user_id | message_description | created_at
-----------------------------------------------------------------------------
1      1           1              2             test1             2016-09-06 10:00:00
2      1           1              2             test2             2016-09-06 11:00:00
3      1           4              2             test3             2016-09-06 09:00:00
4      1           4              2             test4             2016-09-06 15:00:00
5      2           1              2             test1             2016-09-06 10:00:00
6      2           1              2             test2             2016-09-06 11:00:00
7      2           4              2             test3             2016-09-06 09:00:00
8      2           4              2             test4             2016-09-06 15:00:00

查询的结果输出应该是

id | posts_id | from_user_id | to_user_id | message_description | created_at
-----------------------------------------------------------------------------
2      1           1              2             test2             2016-09-06 11:00:00
4      1           4              2             test4             2016-09-06 15:00:00
6      2           1              2             test2             2016-09-06 11:00:00
8      2           4              2             test4             2016-09-06 15:00:00

我正在尝试检索帖子和用户的最新消息。

我在下面进行了尝试,但它没有按正确的顺序给出结果。

SELECT *
FROM messages
WHERE to_user_id = '2'
GROUP BY posts_id DESC,
         from_user_id
ORDER BY id DESC

最佳答案

这个问题与 SO 上发布的数千个其他问题相同。正如手册中所讨论的,最佳解决方案是一个不相关的子查询,例如:

SELECT x.* 
  FROM my_table x 
  JOIN 
     ( SELECT MAX(id) id 
         FROM my_table 
        WHERE to_user_id = 2 -- OPTIONAL
        GROUP 
           BY from_user_id
     ) y 
    ON y.id = x.id;

关于MySQL:带有描述顺序问题的多个分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39342424/

相关文章:

php - 如何关联Yii框架

mysql - 使用 sum 和 group by 以及 ifnull

php - Laravel用groupBy()对每个组的 Eloquent 返回计数

iOS 核心数据分组方式

mysql - 在 "ORDER BY"(Mysql) 上应用 "UNION"

'order by' 不确定时的 SQL 分页

MySql select order by rand 不适用于 GROUP_CONCAT

Java 和 MySQL - 唯一 key 不起作用?

MySQL 按复杂脚本分组

mysql数据库在记录之间插入行