Maison >base de données >tutoriel mysql >Comment regrouper et concaténer les noms d'utilisateurs associés à plusieurs avis dans 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).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!