"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية استخدام تجميع الاستعلام العودية لمطابقة المنتجات في SQL Server؟

كيفية استخدام تجميع الاستعلام العودية لمطابقة المنتجات في SQL Server؟

نشر في 2025-04-19
تصفح:455

How to Group Matched Products in SQL Server Using Recursive Queries?

الهدف من ذلك هو إنشاء جدول "مجموعات" يلتقط هذه المباريات في بنية هرمية. على وجه التحديد ، يجب على عمود "Group_ID" تخزين الحد الأدنى لمعرف المنتج بين أولئك الذين ينتمون إلى نفس المجموعة.

لإنجاز هذا ، يمكننا الاستفادة من قوة الاستعلامات العودية في SQL. يقوم الاستعلام المتكرر بإجراء جولات متعددة من العمليات على نفس البيانات. فيما يلي حل يستخدم تعبيرًا مشتركًا للجدول (CTE) لتتبع العمليات العودية:

مع CTE مثل (( حدد متميز m1.product_id as group_id ، m1.product_id من المباريات M1 اليسار انضم مباريات M2 على m1.product_id = m2.matching_product_id حيث m2.matching_product_id خالية الاتحاد جميع يختار C.Group_ID ، M.Matching_Product_id من Cte ج انضم إلى المباريات م على c.product_id = m.product_id ) حدد * من CTE Order بواسطة group_id

يتم التقاط هذا في الجزء الأول من CTE.

حدد متميز m1.product_id as group_id ، m1.product_id من المباريات M1 اليسار انضم مباريات M2 على m1.product_id = m2.matching_product_id حيث m2.matching_product_id خالية

WITH CTE
AS
(
    SELECT DISTINCT
        M1.Product_ID AS 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

حدد C.Group_ID ، M.Matching_Product_id من Cte ج انضم إلى المباريات م على c.product_id = m.product_id

    SELECT DISTINCT
        M1.Product_ID AS 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

عن طريق الاستفادة من القدرات المتكررة لخادم SQL ، يمكننا استخراج الأنماط الهرمية المعقدة بكفاءة وبيانات متعلقة بالمجموعة في هياكل قاعدة البيانات المعقدة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3