SQL में तीन तालिकाओं को जोड़ें

Sql Mem Tina Talika Om Ko Jorem



रिलेशनल डेटाबेस में, एकाधिक तालिकाओं से डेटा पुनर्प्राप्त करने का कार्य बेहद सामान्य है। लक्ष्य परिणाम के आधार पर, इसमें कई तालिकाओं को एक इकाई में जोड़ना और परिणामी डेटा प्राप्त करना शामिल है।

जब जुड़ने की बात आती है, तो हममें से ज्यादातर लोग मुख्य रूप से दो टेबल वगैरह की सीमा के साथ काम करते हैं। हालाँकि, अधिक सार्थक डेटा लेआउट और अंतर्दृष्टि प्राप्त करने के लिए तीन तालिकाओं को जोड़ने की आवश्यकता आम है। उदाहरण के लिए, जहां आप फिल्मों की सूची, उनकी संगत किराये की सूची और वास्तविक किराये का विवरण पुनः प्राप्त करना चाहते हैं। इनमें से प्रत्येक इकाई जैसे फिल्में, इन्वेंट्री और किराये का विवरण अलग-अलग तालिकाओं में हैं।

इस ट्यूटोरियल में, हम आपको विभिन्न जोड़ और तकनीकों के बारे में बताएंगे जिनका उपयोग आप SQL में तीन तालिकाओं को जोड़ने के लिए कर सकते हैं।







आवश्यकताएं:

प्रदर्शन उद्देश्यों के लिए, हम MySQL संस्करण 80 और सकीला नमूना डेटाबेस का उपयोग करेंगे। आगे बढ़ने के लिए, आप अपने MySQL सर्वर में सकीला डेटाबेस को डाउनलोड और सेट कर सकते हैं। किसी भी अन्य डेटासेट का उपयोग करने के लिए स्वतंत्र महसूस करें जो आपको लागू लगे।



SQL में जॉइन के प्रकार

इससे पहले कि हम जॉइन्स के अनुप्रयोग पर पहुँचें, आइए SQL डेटाबेस में उपलब्ध विभिन्न प्रकार के जॉइन्स पर चर्चा करके शुरुआत करें।



आंतरिक रूप से जुड़ा

जुड़ने का पहला प्रकार इनर जॉइन है। इस प्रकार का जुड़ाव केवल उन पंक्तियों को लौटाता है जिनमें दोनों तालिकाओं में मेल खाने वाला मान होता है। यह एक बहुत ही सामान्य प्रकार का जुड़ाव है और दो तालिकाओं को जोड़ते समय यह सबसे सरल है।





वाक्यविन्यास इस प्रकार है:

कॉलम चुनें

तालिका1 से

इनर जॉइन टेबल2 पर टेबल1.कॉलम_नाम = टेबल2.कॉलम_नाम;

बाँया जोड़

लेफ्ट जॉइन के मामले में, यह बाईं तालिका से सभी पंक्तियाँ और दाईं तालिका से मिलान की गई पंक्तियाँ लौटाता है। यदि सही तालिका से कोई मेल खाने वाले मान नहीं हैं, तो जॉइन उनके स्थान पर NULL मान जोड़ता है।



वाक्यविन्यास इस प्रकार है:

कॉलम चुनें

तालिका1 से

बाईं ओर तालिका 2 में शामिल हों पर टेबल1.कॉलम_नाम = टेबल2.कॉलम_नाम;

सही जोड़

जैसा कि आप अनुमान लगा सकते हैं, दायाँ जोड़ बाएँ जोड़ के विपरीत है। इस प्रकार का जोड़ दाहिनी तालिका से सभी पंक्तियाँ और बाईं तालिका से केवल मेल खाने वाली पंक्तियाँ लौटाता है। यदि बाईं तालिका पर कोई मेल खाने वाली पंक्तियाँ नहीं हैं, तो जॉइन इसमें NULL मान जोड़ता है।

राइट जॉइन का सिंटैक्स निम्नलिखित है:

कॉलम चुनें

तालिका1 से

राइट जॉइन टेबल 2 पर टेबल1.कॉलम_नाम = टेबल2.कॉलम_नाम;

पूर्ण बाहरी जोड़

अगले प्रकार का जुड़ाव जो आपको SQL डेटाबेस में मिलेगा वह पूर्ण बाहरी जोड़ है। इस प्रकार का जुड़ाव दाएँ या बाएँ तालिका में मेल होने पर सभी पंक्तियाँ लौटाता है। यदि दोनों में से किसी में भी कोई मिलान मूल्य नहीं है, तो यह मिलान के बिना तालिका से कॉलम के लिए NULL लौटाता है।

निम्नलिखित पूर्ण बाहरी जोड़ का सिंटैक्स प्रदर्शित करता है:

कॉलम चुनें

तालिका1 से

पूर्ण बाहरी जोड़ तालिका2 पर टेबल1.कॉलम_नाम = टेबल2.कॉलम_नाम;

यह ध्यान रखना अच्छा है कि सभी डेटाबेस इंजन पूर्ण बाहरी जोड़ों का समर्थन नहीं करते हैं। इसे प्राप्त करने के लिए, आपको अन्य प्रकार के JOINS या सबक्वेरीज़ के साथ काम करने की आवश्यकता हो सकती है।

उदाहरण:

आइए कुछ उदाहरण देखें कि हम SQL में तीन तालिकाओं को जोड़ने के लिए इस प्रकार के जुड़ावों का उपयोग कैसे कर सकते हैं।

उदाहरण 1: इनर जॉइन का उपयोग करना

हम इनर जॉइन से शुरुआत करते हैं। मान लीजिए कि हम फिल्मों की एक सूची, किराये की सूची और संबंधित किराये के विवरण पुनः प्राप्त करना चाहते हैं।

हम संबंधित तालिकाओं पर एकाधिक INNER JOINS का उपयोग कर सकते हैं जैसा कि निम्नलिखित उदाहरण में दिखाया गया है:

चुनना

फिल्म का शीर्षक,

इन्वेंट्री.इन्वेंटरी_आईडी,

किराये.किराया_तिथि

से

पतली परत

इनर जॉइन इन्वेंट्री पर

फिल्म.फिल्म_आईडी = इन्वेंट्री.फिल्म_आईडी

इनर जॉइन किराये पर

इन्वेंट्री.इन्वेंटरी_आईडी = किराये.इन्वेंटरी_आईडी;

दिए गए उदाहरण क्वेरी में, हम 'फिल्म_आईडी' कॉलम के आधार पर फिल्म और इन्वेंट्री तालिकाओं को जोड़कर शुरू करते हैं। फिर हम परिणामी सेट लेते हैं और इसे 'इन्वेंटरी_आईडी' कॉलम के आधार पर किराये की तालिका के साथ जोड़ते हैं।

यह सुनिश्चित करता है कि हम तीन तालिकाओं को एक बुनियादी INNER JOIN के साथ जोड़ते हैं। परिणामी सेट इस प्रकार है:

उदाहरण 2: इनर जॉइन और लेफ्ट जॉइन का उपयोग करना

मान लीजिए कि अब हम फिल्मों की सूची, किराये की सूची (यदि कोई हो) और संबंधित किराये के विवरण चाहते हैं।

हम यह भी सुनिश्चित करना चाहते हैं कि भले ही किसी फिल्म में किराये की सूची न हो, फिर भी हम इसे परिणाम में शामिल करते हैं। यहीं पर इनर जॉइन और लेफ्ट जॉइन काम में आते हैं।

निम्नलिखित उदाहरण पर विचार करें:

चुनना

फिल्म का शीर्षक,

इन्वेंट्री.इन्वेंटरी_आईडी,

किराये.किराया_तिथि

से

पतली परत

इनर जॉइन इन्वेंट्री पर

फिल्म.फिल्म_आईडी = इन्वेंट्री.फिल्म_आईडी

किराये पर शामिल होने के लिए छोड़ दिया गया पर

इन्वेंट्री.इन्वेंटरी_आईडी = किराये.इन्वेंटरी_आईडी;

इस उदाहरण में, हम यह सुनिश्चित करने के लिए फिल्म और इन्वेंट्री तालिका में शामिल होने के लिए इनर जॉइन का उपयोग करते हैं कि हमें उपलब्ध इन्वेंट्री के साथ शीर्षक मिलते हैं। यदि उपलब्ध हो तो किराये का विवरण प्राप्त करने के लिए हम किराये की तालिका में शामिल होने के लिए लेफ्ट जॉइन का उपयोग करते हैं और किसी भी शीर्षक के लिए NULL का उपयोग करते हैं जिसका किराये का इतिहास नहीं है।

परिणामी सेट इस प्रकार है:

निष्कर्ष

इस ट्यूटोरियल में, हमने SQL में विभिन्न प्रकार के JOINS के बारे में सीखा, वे कैसे काम करते हैं, और हम तीन तालिकाओं को संयोजित करने के लिए उनका उपयोग कैसे कर सकते हैं।