我有一张包含许多不同作者的博客文章的表格。我想做的是显示最近10位作者的最新帖子。
每个作者的帖子都按顺序添加到表中,这意味着单个作者可能会发布帖子。我有点时间想出一个查询来做到这一点。
这给了我最后10个唯一的作者ID;它可以用作子选择来抓取每个作者的最新帖子吗?
SELECT DISTINCT userid
FROM posts
ORDER BY postid DESC
LIMIT 10
答案 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
答案 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