【问题标题】:Concatenation of rows in T-SQLT-SQL 中的行连接
【发布时间】:2013-03-08 17:14:41
【问题描述】:

我使用 SQL Server 2008,我需要三个表、产品、产品标签和标签。

Products
-----------------
Id | Name

ProductTags 
------------------
Id | ProductId | TagId

Tags
------------------
Id | Name

我正在尝试创建一个查询,该查询返回的结果包含第一列中的产品 id 以及与第二列中连接的产品关联的标签的名称,如下所示:

productid | Tags
-------------------------------------
1           tag1, tag2, tag3
2           tag2, tag3

我知道这可以通过FOR XML PATH('') 以某种方式完成,但我可以做到这一点。使用FOR XML 并不重要。任何会产生结果的解决方案都可以。

【问题讨论】:

标签: sql sql-server-2008 tsql


【解决方案1】:
SELECT
     c.ID, c.Name ProductName,
     STUFF(
         (SELECT    ',' + b.name
          FROM  ProductTags a
                INNER JOIN Tags b
            ON a.TagID = b.ID
          WHERE  a.ProductID = c.ID
          FOR XML PATH (''))
          , 1, 1, '')  AS TagListList
FROM Products AS c
GROUP BY c.Name, c.ID

【讨论】:

    猜你喜欢
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多