MySQL - 选择10位最新作者中的每一位作者的最新帖子

时间:2012-04-16 21:07:12

标签: mysql

我有一张包含许多不同作者的博客文章的表格。我想做的是显示最近10位作者的最新帖子。

每个作者的帖子都按顺序添加到表中,这意味着单个作者可能会发布帖子。我有点时间想出一个查询来做到这一点。

这给了我最后10个唯一的作者ID;它可以用作子选择来抓取每个作者的最新帖子吗?

SELECT DISTINCT userid
FROM posts
ORDER BY postid DESC 
LIMIT 10

3 个答案:

答案 0 :(得分:3)

select userid,postid, win from posts where postid in (
SELECT max(postid) as postid
FROM posts 
GROUP BY userid
) 
ORDER BY postid desc 
limit 10

http://sqlfiddle.com/#!2/09e25/1

答案 1 :(得分:1)

你需要一个子查询,用于每个作者的最后一个postid和postid DESC的命令。然后,将该结果加入posts表:

SELECT B.* FROM
(
    SELECT * FROM
    (
        SELECT userid,MAX(postid) postid
        FROM posts GROUP BY userid
    ) AA
    ORDER BY postid DESC
    LIMIT 10
) A INNER JOIN posts B
USING (user_id,post_id);

确保您拥有此索引

ALTER TABLE posts ADD INDEX user_post_ndx (userid,postid);

答案 2 :(得分:1)

SELECT userid
     , MAX(postid) AS lastpostid
FROM posts
GROUP BY userid
ORDER BY lastpostid DESC 
LIMIT 10