Maison >base de données >tutoriel mysql >Comment regrouper et concaténer les noms d'utilisateurs associés à plusieurs avis dans T-SQL ?

Comment regrouper et concaténer les noms d'utilisateurs associés à plusieurs avis dans T-SQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-15 09:23:43780parcourir

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

T-SQL : combinaison de noms d'utilisateurs issus de plusieurs avis

L'agrégation des données de plusieurs tables liées en une seule chaîne séparée par des virgules est une exigence fréquente dans la gestion de bases de données. Cet exemple illustre une approche T-SQL pour y parvenir, en particulier pour une relation plusieurs-à-plusieurs entre les avis, les réviseurs et les utilisateurs.

Une solution concise utilisant une sous-requête offre une méthode efficace :

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

Voici une répartition :

  • @Reviews : ce tableau stocke les détails des avis (ReviewID, ReviewDate).
  • @Reviewers : Ce tableau relie les avis et les réviseurs (ReviewerID, ReviewID, UserID).
  • @Users : Ce tableau contient des informations sur l'utilisateur (UserID, FName, LName).
  • La déclaration interne SELECT rejoint @Users et @Reviewers pour récupérer les prénoms (FName) associés à chaque avis.
  • FOR XML PATH('') concatène efficacement les valeurs FName en une seule chaîne, séparées par des virgules.

Cette requête regroupe les résultats par ReviewID, produisant une sortie consolidée où chaque avis est représenté par une seule ligne, comprenant ses ReviewID, ReviewDate et une liste délimitée par des virgules des prénoms des utilisateurs associés. Cela répond directement à la nécessité de combiner plusieurs noms d'utilisateur liés à chaque avis en un seul enregistrement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn