दिलचस्प पोस्ट
एंड्रॉइड एप्लिकेशन में एक SQLite क्वेरी कैसे करें? मैं RequireJS में इकाई परीक्षण के लिए निर्भरता कैसे नकली कर सकता हूं? MVC 6 बाइंड विशेषता गायब हो जाती है? IOS में मेमोरी उपयोग देखना स्ट्रिंग को जावा में पूर्ण सरणी में कनवर्ट करें इकाई प्रकार MVC5 EF6 में उपयोगकर्ता कैफ़े में मेरे अपने डेटासेट को प्रशिक्षण / परीक्षण कैसे करें? परिपत्र संदर्भ मेमोरी लीक कारण? एक सीवी की प्रतिलिपि बनाएँ: दूसरे के एक आरओआई के अंदर चटाई जीएसएएन के लिए जावा टाइप जेनेरिक के रूप में तर्क विभिन्न डेटाबेस में कॉलम का चयन करें गतिविधि में वापस बटन को कैसे नियंत्रित करें एक्सेल फाइलों के माध्यम से लूप कैसे करें और उन्हें एसएसआईएस पैकेज का उपयोग करके डेटाबेस में लोड करें? चित्रों को डेटाबेस में कैसे सहेजें to_string std का सदस्य नहीं है, g ++ (mingw) कहता है

क्या कोई सही आबादी का उपयोग करता है?

मैं इन्नेर जॉइन और बायां ओटर्स का प्रयोग हर समय करता हूं। हालांकि, मुझे लगता है कि कभी भी सही अवसरों की आवश्यकता नहीं होती है, कभी भी।

मैंने बहुत सारे गंदे ऑटो-जेनरेट किए गए एसक्यूएल को देखा है जो ठीक से जुड़ता है, लेकिन मेरे लिए यह कोड मेरे सिर को चारों ओर ले जाना असंभव है। मुझे इसे आंतरिक और बाएं उपयोग करके इसे फिर से लिखना पड़ता है ताकि सिर या पूंछ बनाया जा सके।

क्या कोई वास्तव में सही जुड़ने वाले प्रश्नों को लिखता है?

वेब के समाधान से एकत्रित समाधान "क्या कोई सही आबादी का उपयोग करता है?"

यह आपके प्रत्येक तालिका में शामिल होने के किन किन किन पर निर्भर करता है।

यदि आप बाएं तालिका से सभी पंक्तियों को वापस करना चाहते हैं, भले ही दाएं तालिका में कोई मेल नहीं हो … आप बाएं जुड़ने का उपयोग करते हैं

यदि आप सही तालिका से सभी पंक्तियों को वापस करना चाहते हैं, भले ही बाएं तालिका में कोई मेल नहीं हो, तो आप सही में शामिल हों

दिलचस्प रूप से पर्याप्त, मैं शायद ही कभी सही में शामिल होने का इस्तेमाल किया।

एक उदाहरण देने के लिए जहां एक RIGHT JOIN उपयोगी हो सकता है

मान लीजिए कि लोग, पालतू जानवर और पालतू सहायक उपकरण के लिए तीन टेबल हैं लोगों को वैकल्पिक रूप से पालतू जानवर मिल सकते हैं और इन पालतू जानवरों के वैकल्पिक रूप से सहायक उपकरण हो सकते हैं

 CREATE TABLE Persons ( PersonName VARCHAR(10) PRIMARY KEY ); INSERT INTO Persons VALUES ('Alice'), ('Bob'), ('Charles'); CREATE TABLE Pets ( PetName VARCHAR(10) PRIMARY KEY, PersonName VARCHAR(10) ); INSERT INTO Pets VALUES ('Rover', 'Alice'), ('Lassie', 'Alice'), ('Fifi', 'Charles'); CREATE TABLE PetAccessories ( AccessoryName VARCHAR(10) PRIMARY KEY, PetName VARCHAR(10) ); INSERT INTO PetAccessories VALUES ('Ball', 'Rover'), ('Bone', 'Rover'), ('Mouse','Fifi'); 

यदि आवश्यकता सभी लोगों को सूचीबद्ध करने के लिए आवश्यकता होती है तो चाहे वे पालतू जानवरों की जानकारी रखते हों या उनके पास किसी भी पालतू जानवर के बारे में जानकारी हों, जिनके सामान भी हैं

यह काम नहीं करता (बॉब को छोड़ देता है)

 SELECT P.PersonName, Pt.PetName, Pa.AccessoryName FROM Persons P LEFT JOIN Pets Pt ON P.PersonName = Pt.PersonName INNER JOIN PetAccessories Pa ON Pt.PetName = Pa.PetName; 

यह काम नहीं करता है (लैसी शामिल है)

 SELECT P.PersonName, Pt.PetName, Pa.AccessoryName FROM Persons P LEFT JOIN Pets Pt ON P.PersonName = Pt.PersonName LEFT JOIN PetAccessories Pa ON Pt.PetName = Pa.PetName; 

यह काम करता है (लेकिन सिंटैक्स बहुत कम सामान्य रूप से समझा जाता है क्योंकि वांछित लॉजिकल जॉइन ऑर्डर प्राप्त करने के लिए इसके उत्तराधिकार में दो ON धारा की आवश्यकता होती है)

 SELECT P.PersonName, Pt.PetName, Pa.AccessoryName FROM Persons P LEFT JOIN Pets Pt INNER JOIN PetAccessories Pa ON Pt.PetName = Pa.PetName ON P.PersonName = Pt.PersonName; 

RIGHT JOIN का उपयोग करने के लिए सभी संभवतः सबसे आसान

 SELECT P.PersonName, Pt.PetName, Pa.AccessoryName FROM Pets Pt JOIN PetAccessories Pa ON Pt.PetName = Pa.PetName RIGHT JOIN Persons P ON P.PersonName = Pt.PersonName; 

हालांकि यदि यह एक और विकल्प से बचने के लिए निर्धारित किया गया है, तो व्युत्पन्न तालिका पेश करनी होगी, जिसे छोड़ा जा सकता है

 SELECT P.PersonName, T.PetName, T.AccessoryName FROM Persons P LEFT JOIN (SELECT Pt.PetName, Pa.AccessoryName, Pt.PersonName FROM Pets Pt JOIN PetAccessories Pa ON Pt.PetName = Pa.PetName) T ON T.PersonName = P.PersonName; 

एसक्यूएल फ़ाइड्स: माय एसक्यूएल, पोस्टग्रेएसक्यूएल , एसक्यूएल सर्वर

अन्य तालिकाओं में अनाथ वस्तुओं को खोजने के लिए आप आमतौर पर सही आउटर का उपयोग करते हैं।

नहीं, मैं साधारण कारण के लिए नहीं हूं कि मैं अंदरूनी या बाएं जुड़ने वाली हर चीज को पूरा कर सकता हूं।

जब मैं किसी मौजूदा प्रश्न पर काम कर रहा हूं और इसे बदलने की आवश्यकता है (आमतौर पर एक आंतरिक से) मैं एक सही बाहरी सम्मिलन का उपयोग करने का एकमात्र समय है। मैं इसमें शामिल होने के लिए रिवर्स कर सकता हूं और इसे एक बाएं बना सकता हूं और संभवतः ठीक हो सकता हूं, लेकिन जब मैं कोड को संशोधित करता हूं, तो मैं उन चीज़ों की मात्रा को कम करने की कोशिश करता हूं जो मैं बदलता हूं।

मैं केवल बाएं का उपयोग करता हूं, लेकिन मुझे यह बताना है कि वे वास्तव में वही हैं जो आप चीजों की व्यवस्था कैसे करते हैं। मैंने कुछ लोगों के साथ काम किया था जो केवल सही इस्तेमाल करते थे, क्योंकि उन्होंने अंदर से पूछताछ की थी और अपने मुख्य आइटम को अपने दिमाग में रखने के लिए पसंद किया था, यह केवल सही इस्तेमाल करने का अर्थ था।

अर्थात

यहां मुख्य बात मिल गई

अधिक जंक की आवश्यकता है

अधिक जंक सही बाहरी मुख्य भाग में शामिल हों

मैं मुख्य सामान तो कबाड़ करना पसंद करता हूं … तो मेरे लिए बाहरी काम छोड़ दिया

तो जो भी आपकी नौका तैरता है

यहां पर हमारे मानक अभ्यास के लिए यदि संभव हो तो LEFT JOIN के मामले में सब कुछ लिखना है। अगर कभी-कभी हमारे लिए आवश्यक है, लेकिन कभी भी सही नहीं है, तो हम कभी-कभार पूरे जोरों का इस्तेमाल करते हैं।

आप LEFT या RIGHT जुड़ने का उपयोग करके एक ही चीज़ को पूरा कर सकते हैं। आम तौर पर ज्यादातर लोग एक बायीं मुक्ति के मामले में सोचते हैं क्योंकि हम बाएं से दाएं पढ़ते हैं। यह वास्तव में सुसंगत होने के लिए नीचे आता है आपकी टीम को या तो बाएं या दाएं का उपयोग करने पर ध्यान केंद्रित करना चाहिए, दोनों नहीं, क्योंकि वे अनिवार्य रूप से एक ही सटीक चीज़ हैं, जो अलग तरीके से लिखा गया है।

शायद ही, जैसा कि कहा गया है कि आप आम तौर पर एक बाएं जुड़ने में पुन: क्रॉर्डर और उपयोग कर सकते हैं इसके अलावा, मैं स्वाभाविक रूप से डेटा को ऑर्डर करता हूं, जिससे कि मैं डेटा प्राप्त करने के लिए बाएं काम में शामिल हो। मुझे लगता है कि यह भी कहा जा सकता है कि वह बाहरी और पार से मिलकर जुड़ता है, ज्यादातर लोग उनसे दूर रहना पसंद करते हैं।