] लक्ष्य एक "समूह" तालिका बनाना है जो इन मैचों को एक पदानुक्रमित संरचना में कैप्चर करता है। विशेष रूप से, "Group_id" कॉलम को उन लोगों के बीच न्यूनतम उत्पाद आईडी को संग्रहीत करना चाहिए जो एक ही समूह से संबंधित हैं।
इसे पूरा करने के लिए, हम SQL में पुनरावर्ती प्रश्नों की शक्ति का लाभ उठा सकते हैं। एक पुनरावर्ती क्वेरी एक ही डेटा पर कई राउंड ऑपरेशन करता है। यहाँ एक समाधान है जो पुनरावर्ती संचालन को ट्रैक करने के लिए एक सामान्य तालिका अभिव्यक्ति (CTE) को नियोजित करता है:
CTE के साथ जैसा ( अलग का चयन करें M1.product_id as group_id, M1.product_id मैच एम 1 से लेफ्ट जॉइन मैच M2 M1.product_id = m2.matching_product_id पर जहां m2.matching_product_id शून्य है सभी को मिलाना चुनना C.group_id, M.MATCHING_PRODUCT_ID Cte c से मैचों में शामिल हों C.product_id = m.product_id पर ) Group_id द्वारा CTE ऑर्डर से * का चयन करें, पुनरावृत्ति का आधार मामला तब होता है जब किसी उत्पाद का कोई मैच नहीं होता है, जिस स्थिति में वह अपना समूह बनाता है। यह cte के पहले भाग में कैप्चर किया गया है।
अलग -अलग M1.product_id as group_id, M1.product_id मैच एम 1 से लेफ्ट जॉइन मैच M2 M1.product_id = m2.matching_product_id पर जहां m2.matching_product_id शून्य है
CTE का पुनरावर्ती भाग प्रत्येक समूह के लिए सभी मिलान उत्पादों को पाता है। यह इन मिलान उत्पादों को समूह में जोड़ता है।
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
पर, अंत में, हम "group_id" कॉलम द्वारा CTE को छांटकर पदानुक्रमित क्रम में परिणाम प्राप्त कर सकते हैं। पदानुक्रमित संबंध को "Group_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
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3