我有一个博客,多个作者可以发帖。在首页上,我想显示最近 X 个帖子的轮播 - 假设是 5 个。但是,我想过滤掉作者重复。因此,如果一位作者在这 5 篇文章中有多个帖子,则只有最近的一篇会进入,其他的会被过滤掉。另外,我想选择整行,而不仅仅是 ID。这里有一个例子:
数据
ID | Title | AuthorID | Date
1 | "Now" | 6 | 2013-03-27
2 | "this" | 5 | 2013-03-26
3 | "is" | 4 | 2013-03-27
4 | "the" | 2 | 2013-03-28
5 | "story" | 2 | 2013-03-29
6 | "all" | 4 | 2013-04-01
7 | "about" | 2 | 2013-04-02
8 | "how" | 3 | 2013-04-03
9 | "My" | 1 | 2013-04-04
10 | "life" | 1 | 2013-04-05
期望的结果
ID | Title | AuthorID | Date
10 | "life" | 1 | 2013-04-05
8 | "how" | 3 | 2013-04-03
7 | "about" | 2 | 2013-04-02
6 | "all" | 4 | 2013-04-01
2 | "this" | 5 | 2013-03-26
我目前使用以下内容:
SELECT * FROM posts
ORDER BY date DESC
LIMIT 5
但是,这当然让我得到以下结果
ID | Title | AuthorID | Date
10 | "life" | 1 | 2013-04-05
9 | "My" | 1 | 2013-04-04
8 | "how" | 3 | 2013-04-03
7 | "about" | 2 | 2013-04-02
6 | "all" | 4 | 2013-04-01
我想消除重复。如何?
我看到有一个 DISTINCT 子句,但这只会选择作者 ID,我想选择整行。