मुख्य सामग्री पर जाएँ

SQL INNER JOIN बनाम OUTER JOIN: प्रमुख अंतर

उदाहरणों और दृश्य सहायता के साथ SQL INNER JOIN बनाम OUTER JOIN को समझें और अपनी डेटाबेस प्रबंधन कौशल बढ़ाएँ।
· 4 मि॰ पढ़ें

AI के साथ खोजें

इस ट्यूटोरियल में, मैं SQL INNER JOIN और OUTER JOIN के बीच अंतर समझाऊँगा और उदाहरण दूँगा। यह समझने के बाद, आप हमारा Joining Data in SQL कोर्स ले सकते हैं, जो अन्य रोचक जोइन्स जैसे SELF JOIN और CROSS JOIN के साथ-साथ सेट थ्योरी जैसे व्यापक विचार भी कवर करता है।

त्वरित उत्तर

INNER JOIN साझा कॉलम के आधार पर केवल तालिकाओं के बीच मिलान वाली पंक्तियाँ लौटाता है और गैर-मिलान पंक्तियों को छोड़ देता है। उदाहरण के लिए, नीचे दी गई क्वेरी केवल तभी ऑर्डर को ग्राहक विवरणों के साथ दिखाती है जब मिलान मौजूद हो।

-- Inner Join: Returns only matching rows from both tables
SELECT o.OrderID, c.CustomerName
FROM Orders o
INNER JOIN Customers c ON o.CustomerID = c.CustomerID;

OUTER JOIN मिलान वाली पंक्तियों के साथ-साथ एक या दोनों तालिकाओं की गैर-मिलान पंक्तियाँ भी शामिल करता है। नीचे दी गई क्वेरी सभी ग्राहकों को लौटाती है, जिनमें वे भी शामिल हैं जिनके ऑर्डर नहीं हैं।

-- Left Outer Join: Returns all rows from Customers and matching rows from Orders
SELECT c.CustomerName, o.OrderID
FROM Customers c
LEFT JOIN Orders o ON c.CustomerID = o.CustomerID;

SQL INNER JOIN और OUTER JOIN पर करीब से नज़र

अब हम SQL INNER JOIN और OUTER JOIN को एक-एक करके पास से देखते हैं। प्रत्येक को देखते समय, निम्नलिखित दो तालिकाओं पर विचार करें:

कर्मचारियों (employees) तालिका का उदाहरण।

कर्मचारियों की तालिका का उदाहरण। छवि: लेखक द्वारा।

विभागों (departments) तालिका का उदाहरण।

विभागों की तालिका का उदाहरण। छवि: लेखक द्वारा।

INNER JOIN कैसे काम करता है

एक INNER JOIN निर्दिष्ट शर्त के आधार पर केवल वे पंक्तियाँ प्राप्त करता है जिनका दोनों तालिकाओं में मिलान होता है। 

निम्न क्वेरी employee_id, demployee_name, department_name और salary चुनती है और फिर वे पंक्तियाँ लौटाती है जहाँ department_id मौजूद है।

-- Example: Get employees with matching departments
SELECT employees.employee_id, employees.employee_name, departments.department_name, employees.salary
FROM employees
INNER JOIN departments
-- Returns only employees assigned to a department
ON employees.department_id = departments.department_id;

SQL INNER JOIN का उपयोग करके मर्ज की गई तालिका का उदाहरण।

SQL INNER JOIN का उपयोग करके मर्ज की गई तालिका का उदाहरण। छवि: लेखक द्वारा।

OUTER JOIN कैसे काम करता है

OUTER JOIN उपयोग किए गए OUTER JOIN के प्रकार के आधार पर, एक या दोनों तालिकाओं से गैर-मिलान पंक्तियाँ शामिल करता है।

LEFT OUTER JOIN (LEFT JOIN)

LEFT OUTER JOIN बाएँ तालिका की सभी रिकॉर्ड्स और दाएँ तालिका की मिलान वाली रिकॉर्ड्स लौटाता है। यदि मिलान नहीं है, तो दाएँ तालिका के कॉलम के लिए NULL मान लौटाए जाते हैं।

निम्न उदाहरण employees तालिका से सभी रिकॉर्ड्स प्राप्त करता है, भले ही कुछ का मिलान न हो। कर्मचारियों के लिए गायब department_name को NULL के रूप में लौटाया जाता है।

-- Get all employees, even those without a department
SELECT employees.employee_id, employees.employee_name, departments.department_name, employees.salary
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.department_id;

SQL लेफ्ट आउटर जॉइन का उपयोग करके जुड़ी तालिका का उदाहरण

SQL लेफ्ट आउटर जॉइन का उपयोग करके जुड़ी तालिका का उदाहरण। छवि: लेखक द्वारा।

LEFT JOIN और LEFT OUTER JOIN SQL में एक-दूसरे के स्थान पर इस्तेमाल किए जाते हैं क्योंकि दोनों क्वेरी बाएँ तालिका की सभी पंक्तियाँ और दाएँ तालिका की मिलान वाली पंक्तियाँ लाती हैं।

RIGHT OUTER JOIN (RIGHT JOIN)

RIGHT OUTER JOIN दाएँ तालिका की सभी रिकॉर्ड्स और बाएँ तालिका की मिलान वाली रिकॉर्ड्स लौटाता है। बाएँ तालिका की गैर-मिलान पंक्तियों में NULL होगा।

नीचे दी गई क्वेरी departments तालिका से सभी रिकॉर्ड्स लौटाती है, भले ही वहाँ मिलान करने वाले कर्मचारी न हों।

-- Get all departments, even those without employees
SELECT employees.employee_id, employees.employee_name, departments.department_name, employees.salary
FROM employees
RIGHT JOIN departments
ON employees.department_id = departments.department_id;

SQL राइट आउटर जॉइन का उपयोग करके जुड़ी तालिका का उदाहरण।

SQL राइट आउटर जॉइन का उपयोग करके जुड़ी तालिका का उदाहरण। छवि: लेखक द्वारा।

FULL OUTER JOIN

FULL OUTER JOIN लेफ्ट और राइट आउटर जॉइन, दोनों के परिणामों को मिलाता है। यह दोनों तालिकाओं की सभी रिकॉर्ड्स लौटाता है और जहाँ मिलान नहीं होता वहाँ NULL भरता है।

नीचे दी गई क्वेरी employees और departments तालिकाओं के सभी रिकॉर्ड्स लौटाती है, भले ही कुछ पंक्तियाँ गैर-मिलान हों।

-- Combine all employees and departments
SELECT employees.employee_id, employees.employee_name, departments.department_name, employees.salary
FROM employees
FULL JOIN departments
ON employees.department_id = departments.department_id;

SQL फुल आउटर जॉइन का उपयोग करके जुड़ी तालिका का उदाहरण।

SQL फुल आउटर जॉइन का उपयोग करके जुड़ी तालिका का उदाहरण। छवि: लेखक द्वारा।

INNER JOIN बनाम OUTER JOIN: प्रमुख अंतर

INNER JOIN और OUTER JOIN तालिकाएँ मर्ज करते समय गैर-मिलान पंक्तियों को संभालने के तरीके में मूल रूप से भिन्न होते हैं। इन अंतरों को समझना आपकी डेटाबेस क्वेरियों में सही जॉइन प्रकार चुनने के लिए महत्वपूर्ण है। आइए इन अंतरों की तुलना करें।

INNER JOIN क्या लौटाता है

INNER JOIN केवल वे पंक्तियाँ लौटाता है जिनके मान दोनों तालिकाओं में मिलते हैं। यह जॉइन तब उपयोग होता है जब आपको दोनों डेटा सेट्स से डेटा चाहिए।

निम्न क्वेरी employees से रिकॉर्ड्स और departments तालिका की मिलान वाली पंक्तियाँ प्राप्त करती है।

-- Example: Get employees with matching departments
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
INNER JOIN departments
-- Returns only employees assigned to a department
ON employees.department_id = departments.department_id;

SQL Inner join का उपयोग करके जुड़ी तालिका का उदाहरण।

SQL INNER JOIN का उपयोग करके जुड़ी तालिका का उदाहरण। छवि: लेखक द्वारा।

OUTER JOIN क्या लौटाता है

OUTER JOIN उपयोग किए गए OUTER JOIN के प्रकार के अनुसार एक या दोनों तालिकाओं की गैर-мिलान पंक्तियाँ शामिल करता है। उदाहरण के लिए, LEFT OUTER JOIN बाएँ तालिका की सभी पंक्तियाँ और दाएँ तालिका की मिलान वाली पंक्तियाँ लौटाता है। दाएँ तालिका की गैर-मिलान पंक्तियों में NULL होंगे।

निम्न क्वेरी कर्मचारियों के रिकॉर्ड्स प्राप्त करती है, उनमें वे भी शामिल हैं जिनका कोई विभाग नहीं है।

-- Get all employees, even those without a department
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.department_id;

SQL लेफ्ट आउटर जॉइन का उपयोग करके प्राप्त डेटा का उदाहरण।

SQL LEFT OUTER JOIN का उपयोग करके प्राप्त डेटा का उदाहरण। छवि: लेखक द्वारा।

SQL INNER JOIN और OUTER JOIN कब उपयोग करें

INNER JOIN और OUTER JOIN डेटा प्राप्ति के व्यावहारिक उपयोग मामलों में भी अलग होते हैं।

INNER JOIN कब उपयोग करें

INNER JOIN तब सबसे प्रभावी होता है जब आपको दो तालिकाओं से केवल प्रतिच्छेदित (intersecting) डेटा चाहिए। उदाहरण के लिए, आप बिक्री डेटा का विश्लेषण करते समय INNER JOIN का उपयोग उन उत्पादों को खोजने के लिए कर सकते हैं जो बिके हैं, यानी जब उत्पाद और बिक्री दोनों तालिकाओं में मिलान प्रविष्टियाँ हों।

OUTER JOIN कब उपयोग करें

OUTER JOIN तब उपयुक्त होता है जब आपको पूर्ण डेटा सेट लौटाना हो, जिसमें गैर-मिलान पंक्तियाँ भी शामिल हों। उदाहरण के लिए, ऐसी रिपोर्ट बनाते समय जो सभी कर्मचारियों को दिखाए, जिनमें वे भी शामिल हों जिनका कोई विभाग असाइनमेंट नहीं है, या सभी विभाग, जिनमें वे भी हों जिनमें कोई कर्मचारी न हो।

निष्कर्ष

INNER JOIN और OUTER JOIN के बीच अंतर समझना कुशल क्वेरियाँ लिखने के लिए महत्वपूर्ण है। इन तकनीकों को सीखने से तेज़ डेटा प्राप्ति के लिए क्वेरी अनुकूलन में भी मदद मिलती है। मैं आपको लगातार अभ्यास करने के लिए प्रोत्साहित करता हूँ ताकि आप डेटाबेस प्रबंधन में और कौशल सीख सकें।

मैं आपको हमारा Associate Data Analyst in SQL करियर ट्रैक आज़माने की सलाह देता हूँ ताकि आप एक अच्छे डेटा विश्लेषक बन सकें। हमारा Reporting in SQL कोर्स भी आपको जटिल रिपोर्ट्स और डैशबोर्ड बनाने में दक्ष बनने में मदद करेगा ताकि डेटा प्रस्तुति प्रभावी हो। यदि आप ऐसे इंटरव्यू की तैयारी कर रहे हैं जिसमें आपके SQL कौशल प्रदर्शित करने की आवश्यकता है, तो मैं हमारे ब्लॉग 20 Top SQL Joins Interview Questions को देखने की सलाह देता हूँ, जो आपकी तैयारी में मदद करेगा।

Allan Ouko

लेखक

Allan Ouko

डेटा एनालिटिक्स, बिज़नेस इंटेलिजेंस और डेटा साइंस में व्यावहारिक अनुभव रखने वाला डेटा साइंस तकनीकी लेखक। मैं SQL, Python, Power BI, Databricks और डेटा इंजीनियरिंग पर व्यावहारिक, उद्योग-केंद्रित सामग्री लिखता/लिखती हूँ, जो वास्तविक दुनिया की एनालिटिक्स कार्य से जुड़ी होती है। मेरी लेखनी तकनीकी गहराई और व्यावसायिक प्रभाव के बीच पुल का काम करती है, जिससे पेशेवरों को डेटा को आत्मविश्वासपूर्ण निर्णयों में बदलने में मदद मिलती है. 

SQL INNER JOIN और OUTER JOIN से जुड़े FAQs

SQL में INNER JOIN और OUTER JOIN में क्या अंतर है?

INNER JOIN दोनों तालिकाओं से केवल मिलान वाली पंक्तियाँ लौटाता है, जबकि OUTER JOIN गैर-मिलान पंक्तियाँ भी शामिल करता है, और जहाँ संबद्ध डेटा नहीं मिलता, वहाँ NULL रिक्तियाँ भरता है।

मुझे SQL में INNER JOIN कब उपयोग करना चाहिए?

जब आपको केवल दोनों तालिकाओं में मिलान वाले मानों वाली पंक्तियाँ ही प्राप्त करनी हों, तब INNER JOIN का उपयोग करें।

SQL में OUTER JOIN के कौन-कौन से प्रकार होते हैं?

OUTER JOIN के प्रकार हैं: LEFT OUTER JOIN, RIGHT OUTER JOIN, और FULL OUTER JOIN।

SQL में LEFT OUTER JOIN कैसे काम करता है?

लेफ्ट आउटर जॉइन बाएँ तालिका की सभी पंक्तियाँ, दाएँ तालिका की मिलान पंक्तियाँ, और बाएँ की गैर-मिलान पंक्तियाँ लौटाता है।

SQL में FULL OUTER JOIN क्या है?

FULL OUTER JOIN दोनों तालिकाओं की सभी पंक्तियाँ लौटाता है, जिनमें प्रत्येक की गैर-मिलान पंक्तियाँ भी शामिल होती हैं।

विषय