Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggabungkan Berbilang Baris Anak ke dalam Baris Induk Tunggal dalam MySQL?

Bagaimana untuk Menggabungkan Berbilang Baris Anak ke dalam Baris Induk Tunggal dalam MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-28 07:36:13676semak imbas

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

Menggabungkan Berbilang Baris Kanak-kanak ke dalam Baris Tunggal dalam MySQL

Apabila bekerja dengan pangkalan data hubungan, selalunya perlu untuk menggabungkan data daripada berbilang yang berkaitan baris menjadi satu baris. Tugasan ini boleh dicapai menggunakan fungsi GROUP_CONCAT dalam MySQL.

Pernyataan Masalah:

Pertimbangkan dua jadual: Ordered_Item dan Ordered_Options. Jadual Ordered_Item menyimpan item yang dipesan, manakala jadual Ordered_Options merekodkan pilihan yang dikaitkan dengan setiap item yang dipesan. Matlamatnya adalah untuk mencipta pertanyaan yang mengeluarkan satu baris untuk setiap item yang dipesan, dengan pilihan disertakan sebagai lajur yang berasingan.

Penyelesaian:

Pertanyaan berikut menggabungkan baris. daripada jadual Item_Pesanan dan Pilihan_Pesanan menggunakan GROUP_CONCAT fungsi:

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;

Pertanyaan ini menggunakan fungsi GROUP_CONCAT untuk menggabungkan nilai lajur Nilai daripada jadual Ordered_Options, dipisahkan dengan koma. Nilai bercantum diberikan kepada lajur Pilihan dalam output.

Output:

Output pertanyaan akan menyerupai yang berikut:

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

Nota:

Untuk menampung potensi perbezaan dalam susunan pilihan, pertimbangkan untuk menggunakan pernyataan CASE untuk menyusun nilai mengikut Option_Number sebelum menggabungkannya menggunakan GROUP_CONCAT.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Berbilang Baris Anak ke dalam Baris Induk Tunggal dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn