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

लेफ्ट जॉइन आउटपरफॉर्मिंग इनर जॉइन?

यदि आपको लगता है कि LEFT JOIN का कार्यान्वयन INNER JOIN + अधिक कार्य है, तो यह परिणाम भ्रमित करने वाला है। क्या होगा यदि इनर जॉइन का कार्यान्वयन (बाएं जॉइन + फ़िल्टरिंग) है? आह, यह अब स्पष्ट है।

क्वेरी योजनाओं में, केवल यही अंतर है:उपयोगकर्ता... अतिरिक्त:जहां का उपयोग करना . इसका मतलब है छानना। एक अतिरिक्त फ़िल्टरिंग चरण है क्वेरी में इनर जॉइन के साथ।

यह एक अलग तरह का फ़िल्टरिंग है जो आमतौर पर एक क्लॉज में उपयोग किया जाता है। इस फ़िल्टरिंग क्रिया का समर्थन करने के लिए A पर एक अनुक्रमणिका बनाना आसान है।

SELECT *
FROM A
WHERE A.ID = 3

इस प्रश्न पर विचार करें:

SELECT *
FROM A
  LEFT JOIN B
  ON A.ID = B.ID
WHERE B.ID is not null

यह क्वेरी इनर जॉइन के बराबर है। B पर कोई अनुक्रमणिका नहीं है जो उस फ़िल्टरिंग क्रिया में मदद करेगी। कारण यह है कि जहां क्लॉज बी पर एक शर्त के बजाय, शामिल होने के परिणाम पर एक शर्त बता रहा है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एकाधिक मानों के लिए अलग-अलग पंक्तियों की संख्या गिनें

  2. चयन में 2 टेबल में शामिल होना (MYSQL/PHP)

  3. मेरी InnoDB तालिका में रिकॉर्ड गणना के लिए एक अजीब मूल्य क्यों है?

  4. पेजिनेशन पेज नंबर सीमित करें

  5. MySQL:एसएसएल की आवश्यकता अनुदान में नहीं दिखाया गया है