Maison > Article > base de données > Comment puis-je combiner plusieurs lignes enfants en une seule ligne dans MySQL à l'aide de GROUP_CONCAT ?
Problème :
Combiner plusieurs lignes enfants d'une table dans un une seule ligne dans une autre table est une tâche courante dans la gestion de bases de données. Considérez le scénario suivant :
Le résultat souhaité est un tableau qui combine le nom de l'élément avec ses options correspondantes dans un ordre spécifique, même si l'ordre dans la table Ordered_Options est différent.
Solution :
Une approche efficace pour cette tâche consiste à utiliser la fonction GROUP_CONCAT de MySQL. Cette fonction permet la concaténation de valeurs de plusieurs lignes en une seule chaîne.
La requête suivante démontre l'utilisation de GROUP_CONCAT :
SELECT Ordered_Item.ID AS `Id`, Ordered_Item.Item_Name AS `ItemName`, GROUP_CONCAT(Ordered_Options.Value) AS `Options` FROM Ordered_Item INNER JOIN Ordered_Options ON Ordered_Item.ID = Ordered_Options.Ordered_Item_ID GROUP BY Ordered_Item.ID
Sortie :
Cette requête renverra un tableau avec les colonnes suivantes :
Id | ItemName | Options |
---|---|---|
1 | Pizza | Pepperoni, Extra Cheese |
2 | Stromboli | Extra Cheese |
La colonne Options consolide les options pour chaque élément dans l'ordre souhaité.
Considérations supplémentaires :
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!