MySQL で子行を 1 つの親行に結合する
ここで提示する課題には、Ordered_Item と Ordered_Options という 2 つのテーブルのデータを結合することが含まれます。目標は、Ordered_Options のその項目に関連付けられたすべてのオプションの連結を含む、Ordered_Item の項目ごとに 1 行を出力することです。
データベース構造
**Ordered_Item** ID | Item_Name 1 | Pizza 2 | Stromboli **Ordered_Options** Ordered_Item_ID | Option_Number | Value 1 43 Pepperoni 1 44 Extra Cheese 2 44 Extra Cheese
提案されたソリューション
提供されたクエリの試行ですが、構文的には正しく、複数の結合を使用した可能なアプローチを示しています。ただし、GROUP_CONCAT 関数を使用すると、より効率的な解決策を実現できます。
GROUP_CONCAT を使用すると、複数の行の値を 1 つの文字列に連結できます。次のクエリは、GROUP_CONCAT を利用して目的の出力を実現します。
select ordered_item.id as `Id`, ordered_item.Item_Name as `ItemName`, GROUP_CONCAT(Ordered_Options.Value) as `Options` from ordered_item, ordered_options where ordered_item.id=ordered_options.ordered_item_id group by ordered_item.id
出力
Id ItemName Options 1 Pizza Pepperoni,Extra Cheese 2 Stromboli Extra Cheese
追加の考慮事項
以上がGROUP_CONCAT を使用して MySQL で複数の子行を 1 つの親行に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。