जॉइन का उपयोग दो संबंधित तालिकाओं को एक साथ संयोजित करने के लिए किया जाता है।
अपने उदाहरण में, आप कर्मचारी तालिका और विभाग तालिका को इस प्रकार जोड़ सकते हैं:
SELECT FNAME, LNAME, DNAME
FROM
EMPLOYEE INNER JOIN DEPARTMENT ON EMPLOYEE.DNO=DEPARTMENT.DNUMBER
इसके परिणामस्वरूप एक रिकॉर्डसेट होगा जैसे:
FNAME LNAME DNAME
----- ----- -----
John Smith Research
John Doe Administration
मैंने एक INNER JOIN
का उपयोग किया है ऊपर। INNER JOIN
s दो तालिकाओं को संयोजित करें ताकि केवल दोनों तालिकाओं में मिलान वाले रिकॉर्ड प्रदर्शित होते हैं, और वे शामिल हो जाते हैं इस मामले में, विभाग संख्या पर (कर्मचारी में फ़ील्ड DNO, विभाग तालिका में DNUMBER)।
LEFT JOIN
s आपको दो तालिकाओं को संयोजित करने की अनुमति देता है जब आपके पास पहली तालिका में रिकॉर्ड होते हैं लेकिन शायद नहीं दूसरी तालिका में रिकॉर्ड हैं। उदाहरण के लिए, मान लें कि आप सभी कर्मचारियों और किसी आश्रित की सूची चाहते हैं:
SELECT EMPLOYEE.FNAME as employee_first, EMPLOYEE.LNAME as employee_last, DEPENDENT.FNAME as dependent_last, DEPENDENT.LNAME as dependent_last
FROM
EMPLOYEE INNER JOIN DEPENDENT ON EMPLOYEE.SSN=DEPENDENT.ESSN
यहाँ समस्या यह है कि यदि कोई कर्मचारी नहीं निर्भर है, तो उनका रिकॉर्ड बिल्कुल दिखाई नहीं देगा -- क्योंकि DEPENDENT तालिका में कोई मिलान रिकॉर्ड नहीं है।
तो, आप एक बाएं . का उपयोग करते हैं join जो सभी डेटा को "लेफ्ट" (यानी पहली टेबल) पर रखता है और किसी भी मैचिंग डेटा को "राइट" (दूसरी टेबल) पर खींचता है:
SELECT EMPLOYEE.FNAME as employee_first, EMPLOYEE.LNAME as employee_last, DEPENDENT.FNAME as dependent_first, DEPENDENT.LNAME as dependent_last
FROM
EMPLOYEE LEFT JOIN DEPENDENT ON EMPLOYEE.SSN=DEPENDENT.ESSN
अब हमें सब . मिलता है कर्मचारी रिकॉर्ड के। यदि किसी दिए गए कर्मचारी के लिए कोई मेल खाने वाला आश्रित नहीं है, तो dependent_first
और dependent_last
फ़ील्ड रिक्त होंगे।