Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mencipta Senarai Aplikasi Berkaitan yang Dipisahkan Koma dengan Cekap dalam SQL?

Bagaimana untuk Mencipta Senarai Aplikasi Berkaitan yang Dipisahkan Koma dengan Cekap dalam SQL?

Mary-Kate Olsen
Lepaskan: 2025-01-18 22:12:13
asal
758 orang telah melayarinya

How to Efficiently Create Comma-Separated Lists of Associated Applications in SQL?

Menjana Senarai Dipisahkan Koma: Pendekatan SQL

Membentangkan data agregat dengan cekap adalah penting dalam pengurusan pangkalan data. Ini selalunya melibatkan mencipta senarai yang dipisahkan koma. Mari kita periksa cara untuk mencapai ini menggunakan satu pertanyaan SQL, memfokuskan pada sistem pangkalan data yang berbeza. Kami akan menggunakan skema pangkalan data dengan jadual Applications, Resources dan ApplicationsResources. Matlamatnya adalah untuk memaparkan nama setiap sumber bersama senarai aplikasi yang dipisahkan koma untuk aplikasinya.

Penyelesaian Satu Pertanyaan Dioptimumkan

Untuk mengelakkan isu prestasi yang dikaitkan dengan berbilang pertanyaan, satu pertanyaan ialah pendekatan yang paling berkesan. Ini melibatkan penggabungan jadual yang berkaitan dan menggunakan fungsi pengagregatan rentetan yang sesuai. Fungsi khusus berbeza-beza berdasarkan sistem pangkalan data: GROUP_CONCAT (MySQL), STUFF (SQL Server 2005 ), STRING_AGG (SQL Server 2017 ), atau kaedah pengagregatan rentetan terbina dalam Oracle.

Pelaksanaan Khusus Pangkalan Data

  • MySQL:
<code class="language-sql">SELECT r.name, GROUP_CONCAT(a.name SEPARATOR ',') AS application_list
FROM RESOURCES r
JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id
JOIN APPLICATIONS a ON a.id = ar.app_id
GROUP BY r.name;</code>
Salin selepas log masuk
  • SQL Server (2005 dan kemudian): Menggunakan fungsi STUFF:
<code class="language-sql">SELECT r.name,
       STUFF((SELECT ',' + a.name
              FROM APPLICATIONS a
              JOIN APPLICATIONRESOURCES ar ON ar.app_id = a.id
              WHERE ar.resource_id = r.id
              FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') AS application_list
FROM RESOURCES r;</code>
Salin selepas log masuk
  • SQL Server (2017 dan kemudian): Menggunakan fungsi STRING_AGG yang lebih ringkas:
<code class="language-sql">SELECT r.name, STRING_AGG(a.name, ',') AS application_list
FROM RESOURCES r
JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id
JOIN APPLICATIONS a ON a.id = ar.app_id
GROUP BY r.name;</code>
Salin selepas log masuk
  • Oracle: Pendekatan Oracle melibatkan penggunaan LISTAGG atau teknik pengagregatan rentetan yang serupa. Rujuk dokumentasi Oracle untuk sintaks tertentu.

Ringkasan

Penyelesaian pertanyaan tunggal ini menyediakan kaedah yang cekap untuk menjana senarai aplikasi yang dipisahkan koma bagi setiap sumber. Pilihan fungsi bergantung pada sistem pangkalan data yang digunakan, memastikan prestasi optimum dan pembentangan data untuk antara muka pengguna aplikasi anda.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Senarai Aplikasi Berkaitan yang Dipisahkan Koma dengan Cekap dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan