Mysql 为什么到那时,这个顺序就不起作用了?

Mysql 为什么到那时,这个顺序就不起作用了?,mysql,Mysql,假设我有如下MySQL表: Users (id) Posts (id, user_id, created) 那么假设我想为每个用户获取最新的帖子 SELECT * FROM(SELECT * FROM posts ORDER BY created DESC) AS b GROUP BY user_id 它不会正确返回最近的帖子,但是,在不分组时会返回。执行这种查询的正确方法是什么?您似乎想得太多了——想想eaiser吧 假设您的帖子ID是连续的,那么最大的ID对应于最新的帖子-您可以得到如下

假设我有如下MySQL表:

Users (id)
Posts (id, user_id, created)
那么假设我想为每个用户获取最新的帖子

SELECT * FROM(SELECT * FROM posts ORDER BY created DESC) AS b GROUP BY user_id

它不会正确返回最近的帖子,但是,在不分组时会返回。执行这种查询的正确方法是什么?

您似乎想得太多了——想想eaiser吧

假设您的帖子ID是连续的,那么最大的ID对应于最新的帖子-您可以得到如下数据:

select user_id, id, created from Posts where id in
(select max(id) from posts group by user_id)

你似乎想得太多了——想想伊瑟吧

假设您的帖子ID是连续的,那么最大的ID对应于最新的帖子-您可以得到如下数据:

select user_id, id, created from Posts where id in
(select max(id) from posts group by user_id)

您的子查询是多余的。为什么不直接从帖子中选择?
select*from posts GROUP BY user\u id ORDER BY created DESC
产生不正确的结果子查询是多余的。为什么不直接从帖子中选择?
select*from posts GROUP BY user\u id ORDER BY created DESC
产生不正确的结果