首页 >数据库 >mysql教程 >如何在 T-SQL 中对与多个评论相关的用户名进行分组和连接?

如何在 T-SQL 中对与多个评论相关的用户名进行分组和连接?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-15 09:23:43783浏览

How to Group and Concatenate User Names Associated with Multiple Reviews in T-SQL?

T-SQL:组合来自多个评论的用户名

将多个相关表中的数据聚合到一个以逗号分隔的字符串中是数据库管理中的常见需求。 此示例演示了实现此目的的 T-SQL 方法,特别是针对评论、审阅者和用户之间的多对多关系。

使用子查询的简洁解决方案提供了一种有效的方法:

<code class="language-sql">SELECT  r.ReviewID,
        r.ReviewDate,
        ( 
            SELECT  u.FName + ','
            FROM    @Users u INNER JOIN 
                    @Reviewers rs ON u.UserID = rs.UserID
            WHERE   rs.ReviewID = r.ReviewID
            FOR XML PATH('')
        ) AS UserNames
FROM    @Reviews r</code>

这是一个细分:

  • @Reviews:此表存储评论详细信息(ReviewID、ReviewDate)。
  • @Reviewers:此表链接评论和评论者(ReviewerID、ReviewID、UserID)。
  • @Users:该表包含用户信息(UserID、FName、LName)。
  • 内部 SELECT 语句连接 @Users@Reviewers 以检索与每条评论关联的名字 (FName)。
  • FOR XML PATH('') 有效地将 FName 值连接成单个字符串,并用逗号分隔。

此查询按 ReviewID 对结果进行分组,生成一个合并输出,其中每个评论由单行表示,包括其 ReviewIDReviewDate 以及以逗号分隔的关联用户名字列表。 这直接解决了将与每个评论相关的多个用户名合并到单个记录中的需要。

以上是如何在 T-SQL 中对与多个评论相关的用户名进行分组和连接?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn