Rumah >pangkalan data >tutorial mysql >Bagaimanakah Rekursif SQL Quries Kumpulan Produk Boleh Padanan Berdasarkan ID Produk Minimum?

Bagaimanakah Rekursif SQL Quries Kumpulan Produk Boleh Padanan Berdasarkan ID Produk Minimum?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-05 14:33:45203semak imbas

How Can Recursive SQL Queries Group Product Matches Based on Minimum Product ID?

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!

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