Query

在 SQLITE 中將多行中的列合併為一行

  • June 12, 2012

我有一個帶有架構的 sqlite 數據庫

Articles
Id
Name

Tags
Id
Name

ArticlesTags
Id
ArticleId
TagId

我正在嘗試查詢 Articles.Name 和標籤列表。基本上我想要的是:

Name1, (tag1,tag2,tag3)
Name2, (tag3,tag2)

這可能嗎?我缺乏語言來解釋我真正想做的事情,它叫什麼?

我發現將多行中的列組合成單行,但它似乎僅限於 SQLServer 和內置 xml 功能的使用。

您可以使用以下GROUP_CONCAT()功能:

SELECT a.Name               AS ArticleName
    , GROUP_CONCAT(t.Name) AS TagList
FROM Articles AS a
 LEFT JOIN ArticlesTags AS at
   ON at.ArticleId = a.Id
 LEFT JOIN Tags AS t
   ON t.Id = at.TagId
GROUP BY a.Id, a.Name ;

引用自:https://dba.stackexchange.com/questions/19121