जब आप किसी डेटाबेस के साथ काम कर रहे हों, तो आप एक ही समय में दो या दो से अधिक तालिकाओं को क्वेरी करना और परिणामों का एक संयुक्त सेट बनाना चाह सकते हैं। उदाहरण के लिए, आप प्रत्येक कर्मचारी और जिस विभाग के लिए काम करते हैं, उसके नाम का पता लगाना चाह सकते हैं, जहां उन दो सूचनाओं को दो अलग-अलग तालिकाओं में संग्रहीत किया जाता है।
वहीं SQL
जॉइन आते हैं। जब आप टेबल से जुड़ते हैं, तो आप एक से अधिक टेबल पर एक क्वेरी चला सकते हैं और एक संयुक्त परिणाम बना सकते हैं।
इस गाइड में, हम एक प्रकार के जुड़ाव पर ध्यान केंद्रित करने जा रहे हैं:OUTER JOIN
. OUTER JOIN
ऑपरेटर पंक्तियों को वापस कर देते हैं, भले ही उनके पास अंतिम तालिका में संबंधित पंक्तियाँ न हों। हम तीन प्रकार के OUTER JOIN
. पर चर्चा करेंगे s, वे कैसे काम करते हैं, और आप अपने SQL
. में उनका उपयोग कैसे कर सकते हैं? प्रश्न।
SQL पुनश्चर्या से जुड़ता है
क्वेरी, जो आमतौर पर SELECT
. से शुरू होती हैं स्टेटमेंट का उपयोग डेटाबेस से जानकारी प्राप्त करने के लिए किया जाता है। आमतौर पर, जब आप कोई प्रश्न लिख रहे होते हैं तो आप एक टेबल से जानकारी प्राप्त करने पर ध्यान केंद्रित करेंगे और FROM
का उपयोग करेंगे। यह निर्दिष्ट करने के लिए कि आपकी कमांड किस तालिका में क्वेरी करेगी। यहाँ एक मानक SQL
लिखने के लिए वाक्य रचना है क्वेरी:
टेबल_नाम से कॉलम_नाम चुनें जहां कुछ_कंडीशन_रे_मेट;
यहां एक क्वेरी का एक उदाहरण दिया गया है जो employees
में प्रत्येक कर्मचारी के नामों की सूची प्राप्त करेगा तालिका:
कर्मचारियों से नाम चुनें;
हमारी क्वेरी निम्नलिखित लौटाती है:
नाम |
ल्यूक माइक हन्ना ज्योफ एलेक्सिस एम्मा जोनाह एडम |
(8 पंक्तियाँ)
हम WHERE
. का भी उपयोग कर सकते हैं क्लॉज हमारी क्वेरी के परिणामों को फ़िल्टर करने के लिए केवल उन रिकॉर्ड्स को शामिल करने के लिए जो मानदंडों के एक निश्चित सेट को पूरा करते हैं। उदाहरण के लिए, हम एक प्रश्न लिख सकते हैं जो सभी बिक्री सहयोगियों या सभी कार्यकारी कर्मचारियों के नाम ढूंढता है।
81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।
बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।
लेकिन क्या होगा यदि हम एकाधिक तालिकाओं से जानकारी प्राप्त करना चाहते हैं, और परिणाम को एक तालिका में जोड़ना चाहते हैं? यहीं से जुड़ते हैं।
जॉइन आपको कई तालिकाओं को क्वेरी करने और मिलान वाली पंक्तियों के साथ एक संयुक्त परिणाम सेट बनाने की अनुमति देता है। जुड़ने के तीन मुख्य प्रकार हैं:INNER JOIN
, OUTER JOIN
, और CROSS JOIN
।
INNER JOIN
s वापसी पंक्तियाँ जिनका आपके द्वारा क्वेरी की जा रही दोनों तालिकाओं में मिलान है, जबकि OUTER JOIN
s वापसी पंक्तियाँ भले ही उनके पास सम्मिलित तालिका में संबंधित पंक्तियाँ न हों। CROSS JOIN
s बिना किसी जॉइन कंडीशन के जॉइन होते हैं, और एक टेबल की प्रत्येक पंक्ति को दूसरी टेबल की संबंधित पंक्ति के साथ जोड़ दिया जाता है।
SQL आउटर जॉइन
जैसा कि हमने चर्चा की है, जब आप INNER JOIN
. का प्रदर्शन कर रहे होते हैं , किसी भी तालिका की पंक्तियाँ जो किसी अन्य तालिका में बेजोड़ हैं, परिणाम सेट में वापस नहीं की जाएंगी। लेकिन क्या होगा अगर हम इन मूल्यों को प्राप्त करना चाहते हैं? हम OUTER JOIN
का उपयोग कर सकते हैं इस डेटा को पुनः प्राप्त करने के लिए।
OUTER JOIN
तीन प्रकार के होते हैं :
LEFT OUTER JOINS
बाएँ तालिका से बेजोड़ पंक्तियाँ लौटाएँ;RIGHT OUTER JOINS
दाएँ तालिका से बेजोड़ पंक्तियाँ लौटाएँ;FULL OUTER JOINS
सभी तालिकाओं से बेजोड़ पंक्तियां लौटाएं।
OUTER JOIN
s हमारी ज़रूरतों के आधार पर दोनों तालिकाओं के रिकॉर्ड का मिलान करने में सक्षम हैं और हमारे द्वारा उपयोग किए जाने वाले जॉइन के प्रकार से संबंधित सभी रिकॉर्ड वापस कर देंगे।
SQL जॉइन:लेफ्ट
लेफ्ट जॉइन लेफ्ट टेबल से सभी पंक्तियों को लौटाता है और राइट टेबल से पंक्तियाँ जहाँ जॉइन की शर्त पूरी होती है।
मान लें कि हमारे पास दो टेबल हैं:employees
और company_departments
. अब मान लीजिए कि हम प्रत्येक कर्मचारी के नाम के साथ-साथ उनके विभाग के नाम भी प्राप्त करना चाहते थे, भले ही उन्हें किसी विभाग को नहीं सौंपा गया हो। हम यह जानकारी LEFT JOIN
का उपयोग करके प्राप्त कर सकते हैं ।
नीचे LEFT JOIN
का एक उदाहरण दिया गया है क्वेरी जो कर्मचारियों और company_departments तालिकाओं को उनके सामान्य मूल्य का उपयोग करके एक साथ जोड़कर प्रत्येक कर्मचारी का नाम और उनके विभाग का नाम पुनर्प्राप्त करेगी:विभाग_आईडी।
हमारी क्वेरी निम्नलिखित लौटाती है:
नाम | नाम |
ल्यूक | बिक्री |
माइक | बिक्री |
हन्ना | बिक्री |
ज्योफ | बिक्री |
एलेक्सिस | बिक्री |
एम्मा | विपणन |
योना | कार्यकारी |
एडम | <टीडी>
(8 पंक्तियाँ)
जैसा कि आप देख सकते हैं, LEFT JOIN
employees
. से सभी पंक्तियों को वापस कर दिया है तालिका, भले ही जिस विभाग के लिए वे काम करते हैं वह company_departments
. में नहीं पाया जा सकता है टेबल।
यदि आप लेफ्ट जॉइन के बारे में अधिक जानना चाहते हैं, तो आप SQL
पर करियर कर्मा ट्यूटोरियल पढ़ सकते हैं। यहां ऑपरेशन।
एसक्यूएल जॉइन:राइट
RIGHT JOIN
स्टेटमेंट LEFT JOIN
. के बिल्कुल विपरीत है ऑपरेटर। RIGHT JOIN
दाएँ तालिका से सभी पंक्तियों के साथ-साथ बाईं तालिका की पंक्तियों को लौटाता है जहाँ शामिल होने की शर्त पूरी होती है।
मान लीजिए कि हम सभी विभागों के नामों के साथ-साथ उन विभागों में काम करने वाले प्रत्येक कर्मचारी के नामों की सूची प्राप्त करना चाहते हैं। और हम उन विभागों के लिए भी डेटा प्राप्त करना चाहते हैं जहां कोई कर्मचारी नहीं है। इस डेटा को प्राप्त करने के लिए हम निम्नलिखित क्वेरी का उपयोग कर सकते हैं:
कर्मचारियों का नाम चुनें।उपरोक्त क्वेरी निम्नलिखित लौटाती है:
नाम | “विभाग का नाम” |
ल्यूक | बिक्री |
माइक | बिक्री |
हन्ना | बिक्री |
ज्योफ | बिक्री |
एलेक्सिस | बिक्री |
एम्मा | विपणन |
योना | कार्यकारी |
| पेरोल |
| सूचना प्रौद्योगिकी |
(9 पंक्तियाँ)
जैसा कि आप देख सकते हैं, हमारी क्वेरी ने सभी विभागों की सूची, साथ ही उन विभागों के लिए काम करने वाले प्रत्येक कर्मचारी के नाम लौटाए हैं। क्वेरी ने विभागों को भी लौटा दिया है Payroll
और Information Technology
, जिसके पास वर्तमान में कोई कर्मचारी नहीं है।
इसके अलावा, हमारी क्वेरी ने एडम को वापस नहीं किया, जो हमारे LEFT JOIN
. का कर्मचारी था प्रश्न जो किसी विभाग को नहीं सौंपा गया था। ऐसा इसलिए है क्योंकि RIGHT JOIN
सही तालिका से सभी पंक्तियाँ शामिल हैं—company_departments—जहां हमारी शर्तें पूरी होती हैं, और एडम का सही तालिका में किसी भी रिकॉर्ड से कोई संबंध नहीं है।
पूर्ण SQL बाहरी जुड़ाव
FULL OUTER JOINS
s एक असामान्य प्रकार के हैं SQL join
जिसका उपयोग दोनों तालिकाओं से बेजोड़ रिकॉर्ड वापस करने के लिए किया जा सकता है। अक्सर, full OUTER JOIN
दो तालिकाओं के बीच कितना ओवरलैप मौजूद है, यह समझने के लिए कुल कार्यों के साथ s का उपयोग किया जाता है।
मान लीजिए कि हम सभी कर्मचारियों और विभागों की एक सूची प्राप्त करना चाहते हैं। हम निम्नलिखित SQL
का उपयोग कर सकते हैं:उस जानकारी को पुनः प्राप्त करने के लिए क्वेरी:
हमारी क्वेरी निम्नलिखित लौटाती है:
नाम | “विभाग का नाम” |
ल्यूक | बिक्री |
माइक | बिक्री |
हन्ना | बिक्री |
ज्योफ | बिक्री |
एलेक्सिस | बिक्री |
एम्मा | विपणन |
योना | कार्यकारी |
एडम | <टीडी>|
| पेरोल |
| सूचना प्रौद्योगिकी |
(10 पंक्तियाँ)
उपरोक्त परिणाम सेट में प्रत्येक कर्मचारी के नाम की एक सूची शामिल है, साथ ही जिस विभाग को उन्हें सौंपा गया है, भले ही उन्हें किसी विभाग को नहीं सौंपा गया हो। परिणाम सेट में सभी विभाग के नामों की एक सूची भी शामिल है, भले ही किसी विभाग के पास कोई कर्मचारी न हो।
निष्कर्ष
Joins
एक SQL
हैं सर्वर फ़ंक्शन जो आपको एक ही समय में दो या अधिक तालिकाओं को क्वेरी करने और एक संयुक्त परिणाम सेट बनाने की अनुमति देता है। उदाहरण के लिए, यदि आप कंपनी के कर्मचारियों की एक सूची प्राप्त करना चाहते हैं, साथ ही उनके नवीनतम पेरोल चेक को संसाधित करने की तिथि, तो आप join
का उपयोग कर सकते हैं ।
इस ट्यूटोरियल में, हमने OUTER JOIN
. पर ध्यान केंद्रित किया है s, जो पंक्तियों को join
. में लौटाता है भले ही उनके पास सम्मिलित तालिका में संबंधित पंक्तियाँ न हों। हमने तीन मुख्य प्रकार के OUTER JOIN
. पर भी चर्चा की s—LEFT JOIN
, RIGHT JOIN
, और full OUTER JOIN
—और पता लगाया कि वे व्यवहार में कैसे काम करते हैं।
अब आप SQL JOIN
करने के लिए तैयार हैं एक विशेषज्ञ की तरह संचालन!