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