首頁 >資料庫 >mysql教程 >如何在 MySQL 中將多個子行連接成一個父行?

如何在 MySQL 中將多個子行連接成一個父行?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-28 07:36:13739瀏覽

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

在MySQL 中將多個子行連接成一行

使用關聯式資料庫時,通常需要組合來自多個相關的資料行合併為一行。此任務可以使用 MySQL 中的 GROUP_CONCAT 函數來完成。

問題陳述:

考慮兩個表:Ordered_Item 和 Ordered_Options。 Ordered_Item 表格儲存訂購的項目,而 Ordered_Options 表格記錄與每個訂購的項目關聯的選項。目標是建立一個查詢,為每個訂購的商品輸出一行,並將選項作為單獨的列包含在內。

解決方案:

以下查詢組合行使用GROUP_CONCAT 函數從Ordered_Item 和Ordered_Options 表中:

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;

輸出:

查詢的輸出將類似於以下內容:

注意:
| Id | ItemName | Options |
| --- | -------- | ------- |
| 1  | Pizza    | Pepperoni,Extra Cheese |
| 2  | Stromboli | Extra Cheese |

注意:

注意:為了適應順序中的潛在差異選項,請考慮使用CASE 語句按Option_Number將數值進行排序,然後再使用 GROUP_CONCAT 連接它們。

以上是如何在 MySQL 中將多個子行連接成一個父行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn