Maison > base de données > tutoriel mysql > Comment joindre des tables avec des valeurs séparées par des virgules en SQL ?

Comment joindre des tables avec des valeurs séparées par des virgules en SQL ?

Mary-Kate Olsen
Libérer: 2024-12-14 04:32:14
original
983 Les gens l'ont consulté

How to Join Tables with Comma-Separated Values in SQL?

Joindre deux tables avec des valeurs séparées par des virgules

Problème :

Nous avons deux tables : Notes et positions. La table Notes contient une colonne appelée « forDepts » qui stocke les ID de service séparés par des virgules. Nous devons joindre ces tables et associer les valeurs « forDepts » aux noms de département correspondants de la table Positions.

Sortie souhaitée :

nid DepartmentName
1 Executive, Corp Admin, Art
2 Art, Marketing

Solution :

Étant donné que la structure de la base de données ne peut pas être modifiée, nous utiliserons la requête SQL suivante pour obtenir le résultat souhaité sortie :

SELECT  a.nid,
        GROUP_CONCAT(b.name ORDER BY b.id) DepartmentName
FROM    Notes a
        INNER JOIN Positions b
            ON FIND_IN_SET(b.id, a.forDepts) > 0
GROUP   BY a.nid
Copier après la connexion

Explication :

  • La fonction GROUP_CONCAT est utilisée pour concaténer les valeurs de la colonne « nom » de la table Positions pour chaque ligne du Tableau Notes.
  • La clause ORDER BY garantit que les noms de département sont classés par leur IDs.
  • La fonction FIND_IN_SET vérifie si l'ID de service de la table Positions existe dans la colonne 'forDepts' de la table Notes. Si c'est le cas, la ligne correspondante est incluse dans la jointure.
  • La clause GROUP BY regroupe les résultats par la colonne 'nid' dans la table Notes, combinant efficacement tous les noms de département associés à chaque note.

En exécutant cette requête, nous pouvons obtenir le résultat souhaité, où les valeurs de la colonne « forDepts » de la table Notes sont remplacées par les noms de département correspondants, séparés par des virgules, du Tableau des postes. Cela facilitera l'export des données dans un fichier Excel à l'aide du code PHP fourni.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal