問題:
テーブルの複数の子行を 1 つのテーブルに結合する別のテーブルの単一行を作成することは、データベース管理の一般的なタスクです。次のシナリオを考えてみましょう:
必要な出力は、項目名とそれに対応するオプションを組み合わせたテーブルです。 Ordered_Options テーブル内の順序が異なる場合でも、特定の順序を使用できます。
解決策:
このタスクに対する効果的なアプローチの 1 つは、MySQL の 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 INNER JOIN Ordered_Options ON 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 サイトの他の関連記事を参照してください。