【问题标题】:MySQL - GROUP BY with ORDER DESC not workingMySQL - 使用 ORDER DESC 的 GROUP BY 不起作用
【发布时间】:2016-01-19 13:30:47
【问题描述】:

您好,我对以下查询有疑问。

SELECT id, user_id, cloth_id FROM `items` GROUP BY user_id ORDER BY id desc LIMIT 3 

我想要group by 的最新记录,但不知何故它显示的是旧记录。

我也经历了MySQL - Group by with Order by DESC,但没有按预期工作。

【问题讨论】:

  • 同时显示表结构和数据
  • 提供一些样本数据和预期结果。
  • 这就是mysql的问题所在。你不应该被允许选择你没有分组的普通列!将id 添加到 group by 即可。另外,如果选择中没有聚合函数,为什么你使用Group by
  • 试试这个:SELECT id, user_id,cloth_id FROM items ORDER BY id desc GROUP BY user_id LIMIT 3
  • 是的,它会工作,但我想按 user_id 分组

标签: php mysql database


【解决方案1】:

试试这个:

SELECT i.id, i.user_id, i.cloth_id FROM
(
    SELECT max(id) as id, user_id FROM `items` GROUP BY user_id
) temp
LEFT JOIN `items` i on i.user_id = temp.user_id AND i.id = temp.id

temp 中,每个用户都拥有最新的 id。
i 中,您将获得该组合的cloth_id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多