通过选择第一次出现的字段组我怎样才能得到最后一个?

时间:2009-11-05 17:02:33

标签: sql mysql group-by

SELECT user_id, created FROM photo_comments GROUP BY user_id

返回

  user_id  created  
  1        2009-10-20 21:08:22 
  12       2009-10-20 21:45:00 
  16       2009-10-28 20:35:30 

但是,用户ID 1创建的2009-10-20日期是用户ID 1的第一个条目。

如何按用户ID 1获取最后一个条目? (日期应为2009-11-02)

我正在尝试以最近的第一个顺序获得每个用户的最后一个条目。

3 个答案:

答案 0 :(得分:7)

这将有效:

SELECT user_id, max(created) FROM photo_comments GROUP BY user_id

答案 1 :(得分:6)

普通的SQL不应该首先允许那种查询。理论上,您只能请求在GROUP BY子句中命名的字段或其他字段的聚合函数。以下是构建修改后的查询的方法。 (然后你也可以在第一行添加其他字段。)

SELECT user_id, created
FROM photo_comments o
WHERE created =
    (SELECT MAX(created) 
    FROM photo_comments i
    WHERE o.user_id=i.user_id)

答案 2 :(得分:0)

执行SELECT user_id,通过创建的desc GROUP BY user_id

创建FROM photo_comments顺序

不起作用?