Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

बाएं बाहरी जुड़ाव का उपयोग कब करें?

जॉइन का उपयोग दो संबंधित तालिकाओं को एक साथ संयोजित करने के लिए किया जाता है।

अपने उदाहरण में, आप कर्मचारी तालिका और विभाग तालिका को इस प्रकार जोड़ सकते हैं:

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 फ़ील्ड रिक्त होंगे।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql:एक कॉलम में शब्दों के आने की संख्या की गणना करें

  2. MySQL में बल्क इंसर्ट कैसे करें?

  3. MySQL में SUM () द्वारा ऑर्डर कैसे करें?

  4. JSON को MySQL डेटाबेस कैसे निर्यात करें?

  5. एक MySQL चेतावनी फँसाना