Maison > Article > base de données > Comment utiliser GROUP_CONCAT avec LEFT JOIN pour une récupération complète des données dans MySQL ?
MySQL : utilisation de GROUP_CONCAT avec LEFT JOIN pour une récupération complète des données
Une requête de base de données récente utilisant la fonction "GROUP_CONCAT" de MySQL a rencontré un problème lors de la connexion plusieurs tableaux. Le résultat escompté était de récupérer une liste de tickets et leurs solutions correspondantes, mais la requête renvoyait des résultats inattendus.
L'instruction SELECT fournie tentait de récupérer les informations du ticket ainsi qu'une chaîne concaténée de solutions à l'aide d'un LEFT JOIN entre les tableaux « Billets » et « Solutions ». Cependant, les résultats n'étaient pas satisfaisants, la requête renvoyant une seule ligne contenant les détails du premier ticket et les solutions pour les deux tickets.
Pour résoudre ce problème, une requête alternative peut être utilisée, en utilisant une sous-requête pour effectuer la requête GROUP_CONCAT. opération sur le tableau "Solutions". Voici une requête mise à jour :
SELECT t.*, x.combinedsolutions FROM TICKETS t LEFT JOIN (SELECT s.ticket_id, GROUP_CONCAT(s.solution) AS combinedsolutions FROM SOLUTIONS s GROUP BY s.ticket_id) x ON x.ticket_id = t.ticket_id
Dans cette requête, une sous-requête est utilisée pour calculer les solutions concaténées pour chaque ticket. Le résultat de la sous-requête est ensuite joint à la table "Tickets" à l'aide d'un LEFT JOIN. Cela garantit que chaque ticket est renvoyé avec ses solutions correspondantes, comme prévu.
Alternativement, la requête suivante peut obtenir le même résultat en utilisant une sous-requête imbriquée :
SELECT t.*, (SELECT GROUP_CONCAT(s.solution) FROM SOLUTIONS s WHERE s.ticket_id = t.ticket_id) AS combinedsolutions FROM TICKETS t
Ces deux requêtes révisées renvoie avec succès le résultat souhaité, en fournissant une liste complète des tickets avec leurs solutions associées.
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!