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

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

SQL में निम्न प्रकार के जॉइन होते हैं, जो सभी सीधे सेट थ्योरी से आते हैं:

  • आंतरिक जुड़ाव।
    From A inner join B ए ∩ बी के बराबर है, दोनों सेटों के लिए समान तत्वों का सेट प्रदान करता है।

  • बाएं बाहरी शामिल हों।
    From A left outer join B (ए - बी) ∪ (ए ∩ बी) के बराबर है। प्रत्येक ए कम से कम एक बार दिखाई देगा; यदि एक से अधिक मिलान करने वाले B हैं, तो A को प्रति मिलान B में एक बार दोहराया जाएगा।

  • दाएं बाहरी जुड़ाव।
    From A right outer join B (ए ∩ बी) ∪ (बी - ए) के बराबर है। यह टेबल ट्रेडिंग स्थानों के साथ बाएं जुड़ने के समान है। प्रत्येक बी कम से कम एक बार दिखाई देगा; यदि एक से अधिक मिलान अस हैं, तो प्रत्येक B को मिलान B के अनुसार एक बार दोहराया जाएगा।

  • पूर्ण बाहरी जुड़ाव।
    From A full outer join B (ए - बी) ∪ (ए ∩ बी) ∪ (बी - ए) के बराबर है। प्रत्येक ए और प्रत्येक बी कम से कम एक बार दिखाई देंगे। यदि A एक से अधिक B से मेल खाता है तो इसे प्रति मैच एक बार दोहराया जाएगा; अगर एक बी कई से मेल खाता है जैसा कि प्रति मैच एक बार दोहराया जाएगा।

  • क्रॉस जॉइन करें।
    From A cross join B कार्टेशियन उत्पाद . का उत्पादन करता है A × B. प्रत्येक A को प्रत्येक B के लिए एक बार दोहराया जाएगा। यदि A में 100 पंक्तियाँ हैं और B में 100 पंक्तियाँ हैं, तो परिणाम सेट में 10,000 पंक्तियाँ होंगी।

यह ध्यान दिया जाना चाहिए कि select . का सैद्धांतिक निष्पादन क्वेरी में इस क्रम में किए गए निम्नलिखित चरण शामिल हैं:

  1. स्रोत सेट (सेटों) के पूर्ण कार्टेशियन उत्पाद की गणना from . में करें उम्मीदवार परिणाम सेट को प्राइम करने के लिए क्लॉज।

  2. from . में शामिल होने के मानदंड लागू करें खंड और उम्मीदवार परिणाम सेट को कम करें।

  3. where clause . में मानदंड लागू करें उम्मीदवार परिणाम सेट को और कम करने के लिए।

  4. group by . में मानदंडों के आधार पर उम्मीदवारों के परिणाम को समूहों में विभाजित करें खंड।

  5. उम्मीदवार के परिणाम से निकालें group by . में शामिल लोगों के अलावा कोई भी कॉलम सेट करें खंड या एक समग्र कार्य के मूल्यांकन में शामिल।

  6. उम्मीदवार परिणाम सेट में प्रत्येक समूह के लिए ऐसे किसी भी समग्र कार्यों के मूल्य की गणना करें।

  7. उम्मीदवार परिणाम में प्रत्येक समूह को समूहबद्ध कॉलम और प्रत्येक समेकित फ़ंक्शन के लिए गणना किए गए मानों से युक्त एक पंक्ति में सेट करें। उम्मीदवार परिणाम सेट में अब प्रत्येक समूह के लिए एक पंक्ति होती है, जिसमें group by . के अलावा सभी कॉलम होते हैं समूह के लिए कुल कार्यों के कॉलम या गणना मूल्यों को समाप्त कर दिया गया है।

  8. having . में मानदंड लागू करें उम्मीदवार परिणाम सेट को कम करने और अंतिम परिणाम सेट का उत्पादन करने के लिए खंड।

  9. मापदंड द्वारा निर्धारित अंतिम परिणाम को order by . में क्रमित करें खंड और इसे उत्सर्जित करें।

compute . जैसी चीज़ों से संबंधित और भी चरण हैं और compute by खंड, लेकिन यह कैसे काम करता है की सैद्धांतिक धारणा प्राप्त करने के लिए पर्याप्त है।

यह भी ध्यान दिया जाना चाहिए कि सबसे भोले कार्यान्वयन के अलावा कुछ भी वास्तव में select . का मूल्यांकन नहीं करेगा इस तरह से बयान करें, लेकिन उत्पादित परिणाम वही होना चाहिए जैसे कि उपरोक्त चरणों को पूर्ण रूप से किया गया था।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pivot . का उपयोग करके MySQL संस्करण 8.0.17 में विभिन्न तालिकाओं और विभिन्न पंक्तियों की संख्या (संघ) से पंक्ति से स्तंभ परिवर्तन

  2. अल्पविराम मानों वाली तालिकाओं में शामिल हों

  3. MySQL एक्सपोर्ट जॉब में स्कूप एक्सपोर्ट विफल टूल। एक्सपोर्टटूल लेकिन रिकॉर्ड मिला

  4. mysql शो टाइम स्लॉट उपलब्ध हैं और टाइम स्लॉट टेबल से व्यस्त हैं

  5. ऑटो डेटाबेस निर्माण स्प्रिंगबूट और mysql