Maison > base de données > tutoriel mysql > Comment concaténer plusieurs lignes enfants en une ligne parent unique dans MySQL ?

Comment concaténer plusieurs lignes enfants en une ligne parent unique dans MySQL ?

Mary-Kate Olsen
Libérer: 2024-11-28 07:36:13
original
678 Les gens l'ont consulté

How to Concatenate Multiple Child Rows into a Single Parent Row in MySQL?

Concaténation de plusieurs lignes enfants en une seule ligne dans MySQL

Lorsque vous travaillez avec des bases de données relationnelles, il est souvent nécessaire de combiner les données de plusieurs lignes en une seule ligne. Cette tâche peut être accomplie à l'aide de la fonction GROUP_CONCAT dans MySQL.

Énoncé du problème :

Considérez deux tables : Ordered_Item et Ordered_Options. La table Ordered_Item stocke les articles commandés, tandis que la table Ordered_Options enregistre les options associées à chaque article commandé. L'objectif est de créer une requête qui génère une seule ligne pour chaque article commandé, avec les options incluses dans des colonnes distinctes.

Solution :

La requête suivante combine les lignes à partir des tables Ordered_Item et Ordered_Options à l'aide de la fonction GROUP_CONCAT :

SELECT
  ordered_item.id AS `Id`,
  ordered_item.Item_Name AS `ItemName`,
  GROUP_CONCAT(Ordered_Options.Value) AS `Options`
FROM
  ordered_item
JOIN
  ordered_options ON ordered_item.id = ordered_options.ordered_item_id
GROUP BY
  ordered_item.id;
Copier après la connexion

Cette requête utilise la fonction GROUP_CONCAT pour concatène les valeurs de la colonne Value de la table Ordered_Options, séparées par des virgules. Les valeurs concaténées sont affectées à la colonne Options dans la sortie.

Sortie :

La sortie de la requête ressemblera à ce qui suit :

| Id | ItemName | Options |
| --- | -------- | ------- |
| 1  | Pizza    | Pepperoni,Extra Cheese |
| 2  | Stromboli | Extra Cheese |
Copier après la connexion

Remarque :

Pour tenir compte des différences potentielles dans l'ordre des options, envisagez d'utiliser une instruction CASE pour triez les valeurs par Option_Number avant de les concaténer à l'aide de GROUP_CONCAT.

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