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!