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
Explication :
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!