【发布时间】:2009-04-24 14:18:39
【问题描述】:
我之前问过similar question,虽然我得到的答案很精彩,但我可能需要澄清一下。
就像This question 一样,我想根据列中的值返回 N 行。
我的例子是我有一个博客,我想在其中展示我的帖子以及 cmets 的预览。准确地说是最后三个 cmets。
我有我需要的帖子,但我正在绞尽脑汁让 cmets 正确。 cmets 表有一个 post_id 的外键,显然多个 cmets 可以附加到一个帖子,所以如果一个帖子有 20 个 cmets,那么我只想返回最后三个。让这有点棘手的是我想在一个查询中完成它,而不是每个博客帖子的“限制 3”查询,这使得呈现包含大量帖子的页面非常查询繁重。
SELECT *
FROM replies
GROUP BY post_id
HAVING COUNT( post_id ) <=3
这个查询符合我的要求,但只返回每条评论中的一条,而不是三条。
【问题讨论】: