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

ऑड इनर जॉइन सिंटैक्स और एनकैप्सुलेशन

कोष्ठक शब्दार्थ को नहीं बदलते हैं। ON . की स्थिति क्लॉज जॉइन के तार्किक प्रसंस्करण के क्रम को नियंत्रित करता है।

पहली क्वेरी

SELECT Customer.Name,
       Product.Desc,
       Transaction.Date
FROM   Product
       INNER JOIN Transaction
         ON Transaction.ProductID = Product.ID
       INNER JOIN Customer
         ON Transaction.CustomerID = Customer.ID 

दूसरी क्वेरी

(अनावश्यक कोष्ठक हटा दिए गए)

SELECT Customer.Name,
       Product.Desc,
       Transaction.Date
FROM   Product
       INNER JOIN Transaction
                  INNER JOIN Customer
                    ON Transaction.CustomerID = Customer.ID
         ON Transaction.ProductID = Product.ID 

तो तार्किक रूप से अपने पहले उदाहरण में Transaction, Product पर शामिल हों पहले होता है फिर उसके परिणामस्वरूप होने वाली वर्चुअल तालिका Customer . से जुड़ जाती है , जबकि आपके दूसरे उदाहरण में Transaction, Customer . पर शामिल हों पहले होता है फिर उसके परिणामस्वरूप होने वाली वर्चुअल टेबल Product . से जुड़ जाती है

यह केवल तार्किक रूप से है और चूंकि आंतरिक जुड़ाव सहयोगी और कम्यूटेटिव दोनों हैं, इससे निष्पादन योजना पर कोई फर्क नहीं पड़ेगा (जब तक कि आप OPTION (FORCE ORDER) नहीं जोड़ते हैं। क्वेरी के लिए) लेकिन यह बाहरी जुड़ने के लिए कर सकता है।

यह इट्ज़िक बेन गण द्वारा यहां कवर किया गया है लेकिन लेख में कई अशुद्धियाँ हैं, देखें लुबोर कोल्लर का अनुवर्ती पत्र साथ ही।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में मिनटों में समय अंतर की गणना करें

  2. SQL सर्वर में रखरखाव योजना का उपयोग करके बैकअप और रखरखाव कार्य को स्वचालित करें

  3. CTE के साथ IF EXISTS का उपयोग करना

  4. कॉलम के लिए SQL पंक्तियाँ

  5. 'Xp_cmdshell' SQL सर्वर सक्षम करें