2011-12-30 123 views
1

我有3個表 如何從sql server 2008中獲取表中的唯一記錄

  • crossarticle_article - 存儲文章詳細信息的位置。
  • crossarticle_category - 存儲類別詳細信息。
  • crossarticle_articletocategory - 所有三個表在哪裏文章和類別映射存儲。(這是因爲文章可以在多個類別中存在)
  • 現在我想基礎上,文章加入,但問題是如果我這樣做,我會得到重複的文章標題,因爲同一篇文章可能在多個類別中,所以沒有使用組。我需要crossarticle_category連接,因爲類別名稱存在於該表中。即使我跳過該表,仍然crossarticle_articletocategory具有類別和文章的映射。所以仍然我會重複文章標題,任何人都可以建議我一些查詢,這樣我就不會重複文章標題。

    ****************************UPDATED QUESTION************************* 
    

    http://www.prosoundnetwork.com/uploadedImages/ProAudioReview/Forum/PAR_Forum/Sample2/sqlquery.png

    你可以右鍵點擊並在新窗口中打開,看到合適的視圖,在結果可以看到標題重複。

    +0

    你想要的結果的類別做的事情 - 獲得數?用逗號分隔的列表?如果您有多個類別,您究竟期待什麼? – Hogan 2011-12-30 22:10:11

    +0

    此外,你應該發佈你的表的細節 - 或者其中的一些 - 所以我們可以編寫sql的工作。 – Hogan 2011-12-30 22:11:53

    +0

    你能發佈你想要的輸出嗎?樣品會很棒。 – UnhandledExcepSean 2011-12-30 22:34:41

    回答

    2

    像這樣將工作:

    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 
    
    +0

    其實我只想記錄那篇文章,因爲我會有一個鏈接,這可能是任何一個部分的時間。所以排名第一的最新記錄爲特定類別 – Abbas 2011-12-30 23:02:37

    +0

    您好霍根,我猜這會對我有用,只是一個問題,我可以在第一個類別之前獲得第一類, – Abbas 2011-12-30 23:15:42

    +0

    我不確定我是否理解,您只需要一個類別?那麼在數據庫中擁有多個類別有什麼意義? – Hogan 2011-12-30 23:55:56

    2

    使用distinct修飾符:SELECT distinct article_title

    +0

    這不包括類別 - 原始請求的一部分。 – Hogan 2011-12-30 22:12:30

    +0

    只有當您獲得獨特的標題時,這纔會起作用。如果你想(以某種方式)包含文章所屬的類別,它會變得更加複雜。 – jklemmack 2011-12-30 22:14:02

    +0

    @霍根這可能是我,但我沒有看到他要求這樣的事情。如果他想要別的東西,他應該提出更詳細的問題。 – ChristopherS 2011-12-30 22:17:21

    相關問題