問題ステートメント:
2 つのテーブルがあります。料理が1対多で関連付けられる「DISH」と「DISH_HAS_DISHES」依存性。目標は、両方のテーブルから特定の形式 (各食事の料理 ID と名前のカンマ区切りリスト) でデータを取得することです。
GROUP_CONCAT 関数を使用した提案されたソリューション:
MySQL は、指定された区切り文字に基づいて複数の行を連結できる GROUP_CONCAT 関数を提供します。この関数を利用すると、目的の出力を実現できます:
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
説明:
このクエリは、目的の出力形式を生成する必要があります:
meal_id | dish_ids | dish_names |
---|---|---|
1 | 2,3,4 | dish_2, dish_3, dish_4 |
以上がMySQL で複数の行を単一のカンマ区切りの行としてフェッチするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。