SQL

Types of Joins in MySQL

JOINS

कभी-कभी हमें एक से अधिक टेबल से डाटा की आवश्‍यकता होती हैं और इसके लिए हम उन्‍हें सिंगल टेबल के रूप में लेते हैं। मल्टिपल टेबल को सिंगल टेबल में जोड़कर हम सिंगल SQL स्‍टेटमेंट से ही डाटा मेनिप्‍यूलेट कर सकते हैं। टेबल्‍स उन कॉलम्‍स पर जुड़े होते हैं, टेबल्‍स में जिनका डाटा टाईप और डाटा विड्थ समान होती हैं।

ज्‍वाइन्‍स को समझने के लिए हम निम्‍न दो टेबल्‍स पर विचार करेंगे।

Course

SUB Subject Faculty
01 VB Suvarna
02 DBMS Ruchir
03 Java Ritu
04 C++ Sudhir
05 Oracle Devendra

Registration


STUD ID Name Subject
1001 Dhinendra Java
1002 Piyush C++
1003 Paridhi VB
1004 Monika MIS
1005 Pooja HTML

1) इनर ज्‍वाइन या इक्‍वी ज्‍वाइन

इनर ज्‍वाइन सबसे सरल ज्‍वाइन हैं इसमें ज्‍वाइनिंग कंडीशन, कॉमन कॉलम्‍स की वैल्‍यूज के बीच समानता पर आधारित होती हैं। इस प्रकार के ज्‍वाइन में कॉमन रिजल्‍ट टेबल में निरूपयोगी तरीके से दिखाई देते हैं।

क्‍वेरी :- Select * from Course, Registration Where Course.Subject = Registration.Subject;

रिजल्‍ट :-

SUB Subject Faculty Stud ID Name Subject
1 VB Suvarna 1003 Paridhi VB
3 Java Ritu 1001 Dhinendra Java
4 C++ Sudhir 1002 Piyush C++

यहाँ सब्‍जेक्‍ट आऊटपुट में दो बार नजर आता हैं। आऊटपुट यह दर्शाता हैं कि सब्‍जेक्‍ट मैच कर लिए गए हैं और यह कि मेचिंग एक रो देती हैं।

2) नैचुरल ज्‍वाइन या नैचरल इनर ज्‍वाइन

नैचरल ज्‍वाइन इक्‍वी ज्‍वाइन जैसा होता हैं। इसमें अंतर सिर्फ इतना हैं कि डुप्‍लीकेट कॉलम्‍स में से एक हटा दिया जाता हैं। नेचरल ज्‍वाइन उपयोग में लाया जाने वाला सबसे आम ज्‍वाइन ऑपरेशन हैं।

क्‍वेरी :- Select Sub id, Faculty, Course, Subject, Stud id, Name from Course, Registration Where

Course.Subject = Registration.Subject;

रिजल्‍ट :-

SUB ID Faculty Subject Stud ID Name
1 Suvarna VB 1003 Paridhi
3 Ritu Java 1002 Dhinendra
4 Sudhir C++ 1001 Piyush

3) Outer Join

दो टेबल्‍स को ज्‍वाइन करते समय यह आवश्‍यक नहीं हैं कि एक टेबल रो अन्‍य टेबल में मैच करें। आऊटर ज्‍वाइन के उपयोग से ऐसी इंफॉर्मेशन मिल सकती हैं, जिसमें वे रोज जिनकी कॉमन कॉलम में मेचिंग वैल्‍यू नहीं हो, भी रिजल्‍ट टेबल में शामिल कर ली जाँए। आऊटर ज्‍वाइन दो प्रकार के होते हैं – लेफ्ट आऊटर ज्‍वाइन व राईट आऊटर ज्‍वाइन।

(i) लेफ्ट आऊटर ज्‍वाइन :- लेफ्ट आऊटर ज्‍वाइन में ज्‍वाइन कंडीशन (Course Subject = Registration Course (+)) की बांयी और के टेबल्‍स के सारे रिकॉर्ड प्रदर्शित किए जाते हैं। इसी प्रकार कंडीशन के दायीं और के सारे मेंचिग रिकॉर्ड रिकॉर्ड प्रदर्शित किए जाते हैं। ज्‍वाइन कंडीशन के बायीं और के टेबल के उन रिकॉर्डस के लिए जिनकी दायीं और कोई मेचिंग नहीं हैं, नल प्रदर्शित किया जाता हैं।

क्‍वेरी :- Select * from Course, Registration Where Course.Subject = Registration.Subject (+);


रिजल्‍ट :-

Sub ID Subject Faculty Stud ID Name Subject
1 VB Suvarna 1003 Paridhi VB
2 DBMS Ruchir NULL NULL NULL
3 Java Ritu 1001 Dhinendra JAVA
4 C++ Sudhir 1002 Piyush C++
5 Oracle Devendra Null NULL NULL

रिजल्‍ट टेबल से डुप्‍लीकेट कॉलम हटाने के लिए हम फील्‍ड नेम्‍स को खासतौर पर स्‍पेसिफाय कर सकते हैं (जैसा हमने नैचरल ज्‍वाइन में किया था।) और इसे नैचरल लेफ्ट आऊटर ज्‍वाइन कहा जा सकता हैं।

(ii) राईट आऊटर ज्‍वाइन :- राईट आऊटर ज्‍वाइन में ज्‍वाइन कंडीशन (Course. Subject (+) = Registration – Course) की दायीं और टेबल के सारे रिकॉर्ड प्रदर्शित किये जाते हैं। इसी प्रकार ज्‍वाइन कंडीशन की बायीं और के टेबल के मेचिंग रिकॉर्ड प्रदर्शित किये जाते हैं। ज्‍वाइन कंडीशन की दायीं और के टेबल के उन रिकॉर्ड के लिए जिनका बायीं और मेचिंग नहीं हैं, नल प्रदर्शित किया जाता हैं।

क्‍वेरी :- Select * from Course, Registration Where Course.Subject (+) = Registration.Subject

रिजल्‍ट :-

Sub ID Subject Faculty Stud ID Name Subject
1 VB Savarna 1003 Paridhi VB
2 Java Ritu 1001 Dhinendra JAVA
3 C++ Sudhir 1002 Piyush C++
NULL NULL NULL 1005 Pooja HTML
NULL NULL NULL 1004 Monika MIS

रिजल्‍ट टेबल से डुप्‍लीकेट कॉलम हटाने के लिए हम फील्‍ड नेम्‍स को विशेषतौर से स्‍पेसिफॉय कर सकते हैं (जैसा हमने नैचरल ज्‍वाइन में किया था) और इसे नैचरल राईट आऊटर ज्‍वाइन कह सकते हैं।