首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图获得一个独特的论坛帖子列表,但不起作用。

试图获得一个独特的论坛帖子列表,但不起作用。
EN

Stack Overflow用户
提问于 2013-10-06 10:52:22
回答 1查看 49关注 0票数 0

快速概述,我试图从我的论坛表的最后5个论坛帖子显示给用户在RHS专栏。

我还想要的是,这个列表应该只显示唯一的论坛帖子标题(有时用户在多个论坛上发布相同的帖子,我不希望我的RHS框有可能显示相同的5“标题”,即使它们在不同的论坛类别中)。

但是这个sql不是安静的工作..。它是完全跳过任何论坛的帖子,有相同的标题多次,我仍然希望多标题的条目,但只有一个。

代码语言:javascript
复制
SELECT 
    f.id,
    f.title,  
    fm.url_path
FROM forum_posts AS f
INNER JOIN forum_master AS fm 
    ON f.forum_id = fm.id 
WHERE deleted = 0
    AND blacklisted = 0
GROUP BY f.title
ORDER BY f.id DESC 
LIMIT 5

例如,考虑一下这个表

代码语言:javascript
复制
id  title
1   a
2   b
3   c
4   d
5   e
6   f
7   f

我想返回id的7,5,4,3,2,我仍然想要一个标题f的实例,但只有一个。我的代码似乎返回1-5 (完全跳过两个id 6-7,因为它们有相同的标题)。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-06 12:56:42

尝试下面的嵌套查询:http://sqlfiddle.com/#!2/758b3e/11

代码语言:javascript
复制
SELECT
  f.title,
  f.id,
  fm.url_path
FROM forum_posts AS f
INNER JOIN forum_master AS fm 
ON f.forum_id = fm.id 
WHERE deleted = 0
AND blacklisted = 0
AND (SELECT id
     FROM forum_posts
     WHERE title = f.title
     ORDER BY id DESC
     LIMIT 1) = f.id
ORDER BY f.id DESC
LIMIT 5

我没有使用group by (我认为在这种情况下Oracle会失败--不能使用多个ID进行分组),而是将id过滤到WHERE子句中的一种可能性,删除重复的ID,并使用最高的ID。group by查询获取的ID是最低的,所以即使它正常工作,它也不是您想要的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19208036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档