在 SQLITE 中将多行中的列合并为一行

ric*_*den 4 sqlite join query

我有一个带有架构的 sqlite 数据库

Articles
 Id
 Name

Tags
 Id
 Name

ArticlesTags
 Id
 ArticleId
 TagId
Run Code Online (Sandbox Code Playgroud)

我正在尝试查询 Articles.Name 和标签列表。基本上我想要的是:

Name1, (tag1,tag2,tag3)
Name2, (tag3,tag2)
Run Code Online (Sandbox Code Playgroud)

这可能吗?我缺乏语言来解释我真正想做的事情,它叫什么?

我发现将多行中的列合并为单行,但它似乎仅限于 SQLServer 和内置 xml 功能的使用。

ype*_*eᵀᴹ 7

您可以使用该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 ;
Run Code Online (Sandbox Code Playgroud)