如何从sql server 2008中获取表中的唯一记录
我有3个表 如何从sql server 2008中获取表中的唯一记录
现在我想基础上,文章加入,但问题是如果我这样做,我会得到重复的文章标题,因为同一篇文章可能在多个类别中,所以没有使用组。我需要crossarticle_category连接,因为类别名称存在于该表中。即使我跳过该表,仍然crossarticle_articletocategory具有类别和文章的映射。所以仍然我会重复文章标题,任何人都可以建议我一些查询,这样我就不会重复文章标题。
****************************UPDATED QUESTION*************************
http://www.prosoundnetwork.com/uploadedImages/ProAudioReview/Forum/PAR_Forum/Sample2/sqlquery.png
你可以右键点击并在新窗口中打开,看到合适的视图,在结果可以看到标题重复。
像这样将工作:
SELECT TOP 5 CA.Id AS ArticleID, CA.Title as ArticleTitle,
stuff((SELECT ', '+CC.Name
FROM CrossArticle_ArticleToCategory A2C
INNER JOIN CrossArticle_Category CC ON A2C.CategoryId = CC.Id
WHERE A2C.ArticleId = CA.Id
ORDER BY CC.Name
FOR XML PATH ('')
), 1, 2, '') as Categories
FROM CrossArticle_Article CA
这会给你每篇文章一行与类别的逗号列表。 它看起来就像这样(我测试,因此它是正确的):
ArticleID Article Title Categories
5685 AlkjTechv Hardware
5684 Show Report... Gear, News
5683 Radi-something introduces Gear, News
我只有3个答案,因为你只给了示例数据为3个结果。
附注:这比自定义聚合要快得多。
如果什么类别是不是选择这样不要紧会给你所有的标题:
SELECT TOP 5 CA.Id AS ArticleID, CA.Title as ArticleTitle,
FROM CrossArticle_Article CA
使用distinct
修饰符:SELECT distinct article_title
。
这不包括类别 - 原始请求的一部分。 – Hogan 2011-12-30 22:12:30
只有当您获得独特的标题时,这才会起作用。如果你想(以某种方式)包含文章所属的类别,它会变得更加复杂。 – jklemmack 2011-12-30 22:14:02
@霍根这可能是我,但我没有看到他要求这样的事情。如果他想要别的东西,他应该提出更详细的问题。 – ChristopherS 2011-12-30 22:17:21
你想要的结果的类别做的事情 - 获得数?用逗号分隔的列表?如果您有多个类别,您究竟期待什么? – Hogan 2011-12-30 22:10:11
此外,你应该发布你的表的细节 - 或者其中的一些 - 所以我们可以编写sql的工作。 – Hogan 2011-12-30 22:11:53
你能发布你想要的输出吗?样品会很棒。 – UnhandledExcepSean 2011-12-30 22:34:41