दिलचस्प पोस्ट
एंड्रॉइड-जावा- ऑब्जेक्ट के भीतर किसी निश्चित मान से ऑब्जेक्ट्स की एक सूची को सॉर्ट करने के लिए जावास्क्रिप्ट नेस्टेड फ़ंक्शन पायथन में कई तिथियों के माध्यम से फेरबदल करना कुल फ़ील्ड मान द्वारा एक QuerySet ऑर्डर करें XML-SelectNodes डिफ़ॉल्ट-नेमस्पेस के साथ XmlNamespaceManager द्वारा अपेक्षित के रूप में काम नहीं कर रहा है jquery कुकी में जेसन डेटा वस्तु को बचाने AngularJS: AngularJS ने एक टेम्पलेट गाया है के बाद अतिरिक्त कोड को चलाने के लिए कैसे? "पीएक्स", "डुबकी", "डीपी" और "एसपी" के बीच अंतर क्या है? ओएस संस्करण / दोस्ताना नाम सी # में प्राप्त करें क्या आपको जीसीडी में एक ब्लॉक के भीतर एक एनएसएएसयूटीओरियस पोल बनाने की आवश्यकता है? MySQL autoincrement कॉलम 10 से कूदता है- क्यों? सूची से एक मूल्य के सभी घटनाओं को निकालें? पायथन की "इस यूनिकोड के लिए सबसे अच्छा ASCII" डेटाबेस कहां है? मैं कैसे WPF पाठ बॉक्स में एक संकेत पाठ जोड़ सकते हैं? .NET में एक स्ट्रिंग के लिए मैं एक डिफ़ॉल्ट कन्स्ट्रक्टर को परिभाषित क्यों नहीं कर सकता?

मैं कैसे तय करता हूं कि सही जुड़ने / बाएं जुड़ने या आंतरिक जुड़ने का उपयोग कब करना है या यह निर्धारित करने के लिए कि किस किनारे पर तालिका है?

मैं शामिल होने के उपयोग को जानता हूं, लेकिन कभी-कभी मैं ऐसी स्थिति में आ जाता हूं जब मैं यह तय करने में सक्षम नहीं हूं कि कौन सा शामिल होना उपयुक्त होगा, बाएं या दाएं

यहाँ वह क्वेरी है जहां मैं फंस रहा हूं।

SELECT count(ImageId) as [IndividualRemaining], userMaster.empName AS ID#, CONVERT(DATETIME, folderDetails.folderName, 101) AS FolderDate, batchDetails.batchName AS Batch#, Client=@ClientName, TotalInloaded = IsNull(@TotalInloaded,0), PendingUnassigned = @PendingUnassigned, InloadedAssigned = IsNull(@TotalAssigned,0), TotalProcessed = @TotalProcessed, Remaining = @Remaining FROM batchDetails Left JOIN folderDetails ON batchDetails.folderId = folderDetails.folderId Left JOIN imageDetails ON batchDetails.batchId = imageDetails.batchId Left JOIN userMaster ON imageDetails.assignedToUser = userMaster.userId WHERE folderDetails.ClientId =@ClientID and verifyflag='n' and folderDetails.FolderName IN (SELECT convert(VARCHAR,Value) FROM dbo.Split(@Output,',')) and userMaster.empName <> 'unused' GROUP BY userMaster.empName, folderDetails.folderName, batchDetails.batchName Order BY folderDetails.Foldername asc 

वेब के समाधान से एकत्रित समाधान "मैं कैसे तय करता हूं कि सही जुड़ने / बाएं जुड़ने या आंतरिक जुड़ने का उपयोग कब करना है या यह निर्धारित करने के लिए कि किस किनारे पर तालिका है?"

हां, यह उस स्थिति पर निर्भर करता है जो आप में हैं

SQL JOIN का उपयोग क्यों करें?

उत्तर : एसक्यूएल एसओएनएएन का प्रयोग करें जब भी कोई भी एसक्यूएल चयन कथन के माध्यम से कई तालिकाओं तक पहुंचना चाहिए और यदि कोई जॉइंट टेबल्स के बीच कोई मेल नहीं है तो कोई भी परिणाम नहीं लौटा जाना चाहिए।

कोड प्रोजेक्ट पर इस मूल लेख को पढ़ना आपको बहुत मदद करेगा: एसक्यूएल का दृश्य प्रतिनिधित्व जुड़ता है

वैकल्पिक शब्द

इस पोस्ट की भी जांच करें: एसक्यूएल सर्वर – बेहतर प्रदर्शन – बायां शामिल हों या नहीं? ।

यहां पर मूल एक खोजें: JOIN और OUTER के बीच अंतर MySQL में शामिल हों

मुझे लगता है कि आप जो देख रहे हैं वह मुख्य तालिका से शुरू होने वाले मुख्य तालिका से शुरू करने के लिए है, भले ही उनके पास सम्मिलित व्यक्ति में मान्य डेटा हों (जैसा कि ग्राफ़िक में शीर्ष बाएं 2 मंडलों द्वारा इंगित किया गया है )

उत्तराधिकार में शामिल हों, इसलिए यदि आपके पास 4 तालिकाओं को शामिल करने के लिए है, और आप हमेशा अपनी मुख्य तालिका से सभी रिकॉर्ड चाहते हैं, तो आपको LEFT JOIN जुड़ें जारी रखना होगा, उदाहरण के लिए:

 SELECT * FROM main_table LEFT JOIN sub_table ON main_table.ID = sub_table.main_table_ID LEFT JOIN sub_sub_table on main_table.ID = sub_sub_table.main_table_ID 

यदि आप INNER JOIN उप-सबब_टेबल में शामिल हो जाते हैं, तो यह तुरंत आपके परिणाम सेट को कम कर देगा, भले ही आपने सब_टेबल पर LEFT JOIN किया हो।

याद रखें, LEFT JOIN , आपको NULL मूल्य लौटाए जाने के लिए खाते की आवश्यकता है क्योंकि अगर कोई रिकॉर्ड मुख्य_टेबल में शामिल नहीं किया जा सकता है, तो एक बग़ल में शामिल होने वाली सेनाएं जो चाहे मैदान में दिखाई दें और इसमें एक नल होगा INNER JOIN स्पष्ट रूप से केवल "फेंक" पंक्ति के बजाय क्योंकि दोनों के बीच कोई वैध लिंक नहीं है (आईडी पर आधारित कोई भी रिकॉर्ड नहीं है)

हालांकि, आप का उल्लेख है कि आपके पास एक ऐसा कथन है जहां आप उन पंक्तियों को फ़िल्टर कर सकते हैं जो आप देख रहे हैं, इसलिए जोन के आपके प्रश्न शून्य और शून्य हैं क्योंकि यह आपकी असली समस्या नहीं है। (यह सही है अगर मैं आपकी टिप्पणियां सही ढंग से समझता हूं)

दो सेटों में:

  • जब आप दोनों सेटों से सभी परिणाम चाहते हैं, तो पूर्ण बाहरी सम्मिलन का उपयोग करें।

  • जब आप दोनों सेटों में दिखने वाले परिणाम ही चाहते हैं, तो एक आंतरिक सम्मिलन का उपयोग करें।

  • जब आप सभी सेटों से सेट करना चाहते हैं, तो बाएं बाहरी युग्म का उपयोग करें, लेकिन अगर सेट बी में से कुछ को रिकॉर्ड के साथ प्रासंगिक डेटा है, तो आप उस डेटा को उसी प्रश्न में भी इस्तेमाल करना चाहते हैं।

कृपया निम्नलिखित चित्र देखें:

एसक्यूएल जुड़ जाता है