Maison >base de données >tutoriel mysql >Comment créer des listes de noms d'applications associés séparés par des virgules dans SQL ?

Comment créer des listes de noms d'applications associés séparés par des virgules dans SQL ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-18 22:16:12579parcourir

How to Create Comma-Separated Lists of Associated Application Names in SQL?

Créer une liste séparée par des virgules à l'aide d'une requête SQL

Lorsque plusieurs tables contiennent des données d'application et de ressources, une tâche courante consiste à répertorier une table répertoriant tous les noms de ressources ainsi que les noms d'applications associés séparés par des virgules. Pour y parvenir à l'aide d'une seule requête SQL, suivez ces étapes :

MySQL :

<code class="language-sql">SELECT r.name,
         GROUP_CONCAT(a.name SEPARATOR ',') AS application_names
    FROM RESOURCES r
    JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id
    JOIN APPLICATIONS a ON a.id = ar.app_id
GROUP BY r.name</code>

SQL Server (2005) :

<code class="language-sql">SELECT r.name,
       STUFF((SELECT ',' + a.name
               FROM APPLICATIONS a
               JOIN APPLICATIONRESOURCES ar ON ar.app_id = a.id
              WHERE ar.resource_id = r.id
           GROUP BY a.name
            FOR XML PATH(''), TYPE).value('text()[1]','NVARCHAR(max)'), 1, LEN(','), '') AS application_names
 FROM RESOURCES r</code>

SQL Server (2017) :

<code class="language-sql">SELECT r.name,
         STRING_AGG(a.name, ',') AS application_names
    FROM RESOURCES r
    JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id
    JOIN APPLICATIONS a ON a.id = ar.app_id
GROUP BY r.name</code>

Oracle : Oracle propose plusieurs options d'agrégation/jonction de chaînes. Veuillez vous référer à la documentation pour connaître la syntaxe et les exigences spécifiques.

Ces requêtes joignent la table "RESOURCES" aux tables "APPLICATIONSRESOURCES" et "APPLICATIONS" pour récupérer les noms de ressources et les noms d'applications associés. La fonction "GROUP_CONCAT", "STUFF" ou "STRING_AGG" est ensuite utilisée pour concaténer le nom de l'application en une liste de chaque ressource séparée par des virgules. Pour améliorer la lisibilité, nous avons ajouté des alias application_names aux colonnes de résultats.

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