Rumah >pangkalan data >tutorial mysql >Bagaimanakah Rekursif SQL Quries Kumpulan Produk Boleh Padanan Berdasarkan ID Produk Minimum?
Pertanyaan Rekursif dalam Pelayan SQL
Seorang penganalisis data menghadapi kesukaran untuk mengubah jadual yang mengandungi padanan produk kepada jadual pengumpulan yang diingini. Matlamatnya ialah untuk mendapatkan jadual baharu, dinamakan 'kumpulan,' di mana setiap kumpulan diwakili oleh ID produk minimum produk konstituennya.
Untuk mencapai matlamat ini, kami boleh memanfaatkan keupayaan rekursif SQL. Berikut ialah penyelesaian menggunakan ungkapan jadual biasa (CTE):
;WITH CTE AS ( SELECT DISTINCT M1.Product_ID Group_ID, M1.Product_ID FROM matches M1 LEFT JOIN matches M2 ON M1.Product_Id = M2.matching_Product_Id WHERE M2.matching_Product_Id IS NULL UNION ALL SELECT C.Group_ID, M.matching_Product_Id FROM CTE C JOIN matches M ON C.Product_ID = M.Product_ID ) SELECT * FROM CTE ORDER BY Group_ID
CTE mentakrifkan pertanyaan rekursif bermula dengan baris yang tidak mempunyai sebarang produk yang sepadan. Selepas itu, ia mengenal pasti produk padanan tambahan dan mengumpulkannya berdasarkan ID produk minimum. Kedalaman rekursi boleh dikawal menggunakan klausa OPTION(MAXRECURSION).
Penyelesaian ini secara berkesan mengagregatkan padanan produk ke dalam kumpulan mengikut kriteria yang ditentukan.
Atas ialah kandungan terperinci Bagaimanakah Rekursif SQL Quries Kumpulan Produk Boleh Padanan Berdasarkan ID Produk Minimum?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!