使用mysql从一个表中检索每个组的一个项目

时间:2013-06-10 08:49:11

标签: mysql sql

我有一张包含来自不同用户的推文的表格,我想在每个人中选择最新的推文。我用什么SQL来检索这些?

twitter_username   tweet       date
stevdobb           tweet one   2013-06-07 12:00
stevdobb           tweet two   2013-06-09 12:00   
stevdobb           tweet three 2013-06-05 12:00
other_username     tweet four  2013-06-10 12:00

2 个答案:

答案 0 :(得分:4)

您可以创建子查询以按用户查找最新日期

select twitter_username, max(date) from tweets group by twitter_username

然后您可以使用此子查询来获取所需的推文

select tweets.* from tweets join ( 
   select twitter_username, max(date) max_date 
   from tweets group by twitter_username
) latest on 
latest.twitter_username = tweets.twitter_username and 
latest.max_date = tweets.date

答案 1 :(得分:0)

SELECT twitter_username,tweet FROM your_table
GROUP BY `twitter_username` ORDER BY `date` DESC

GROUP BY通常与聚合函数一起使用,但如果没有它们,则只显示第一个匹配的记录。如果按日期desc订购,则为最新版本。