所以我有以下查询,它按照我的预期执行。它从每个作者那里获取最新发表的文章。但是现在我想让它从每个作者那里得到最新的两篇文章。我该怎么做?
SELECT author_article.ID
FROM (
SELECT
sorted_articles.ID,
sorted_articles.AuthorID,
sorted_articles.PublishedDate
FROM ArticlePage sorted_articles
ORDER BY PublishedDate DESC
) author_article
GROUP BY author_article.AuthorID
ORDER BY author_article.PublishedDate DESC;
所以我需要的是每个作者的最新 2 篇文章。
最佳答案
使用相关子查询来计算同一作者最近发表的所有文章。如果有 1 篇或更少的最新文章,则返回该行。
SELECT *
FROM ArticlePage t1
WHERE (select count(*) from ArticlePage t2
where t2.AuthorID = t1.AuthorID
and t2.PublishedDate > t1.PublishedDate) <= 1
关于mysql - GROUP BY 得到前两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32139055/