Énoncé du problème :
Vous avez deux tables, "DISH" et "DISH_HAS_DISHES", où les plats sont liés avec une dépendance un-à-plusieurs. L'objectif est de récupérer les données des deux tables dans un format spécifique : une liste d'identifiants de plats et de noms séparés par des virgules pour chaque repas.
Solution proposée avec la fonction GROUP_CONCAT :
MySQL fournit la fonction GROUP_CONCAT, qui permet la concaténation de plusieurs lignes en fonction d'un délimiteur spécifié. En utilisant cette fonction, vous pouvez obtenir le résultat souhaité :
SELECT m.meal_Id, GROUP_CONCAT(dish_id) dish_ids, GROUP_CONCAT(dish_name) dish_names FROM DISH_HAS_DISHES m JOIN DISH d ON (m.dish_id = d.dish_id) GROUP BY meal_Id
Explication :
Cette requête doit produire le format de sortie souhaité :
meal_id | dish_ids | dish_names |
---|---|---|
1 | 2,3,4 | dish_2, dish_3, dish_4 |
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!