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

क्रॉस जॉइन का उपयोग करने और दो तालिकाओं के बीच अल्पविराम लगाने में क्या अंतर है?

वे वही परिणाम लौटाते हैं क्योंकि वे अर्थपूर्ण रूप से समान हैं। यह:

select * 
  from A, B

... is (wince) ANSI-89 सिंटैक्स। तालिकाओं को एक साथ जोड़ने के लिए WHERE क्लॉज के बिना, परिणाम एक कार्टेशियन उत्पाद है। वही विकल्प भी प्रदान करता है:

    select * 
      from A 
cross join B

...लेकिन क्रॉस जॉइन ANSI-92 सिंटैक्स है।

प्रदर्शन के बारे में

उनके बीच कोई प्रदर्शन अंतर नहीं है।

ANSI-92 का उपयोग क्यों करें?

ANSI-92 सिंटैक्स का उपयोग करने का कारण OUTER JOIN सपोर्ट (IE:LEFT, FULL, RIGHT) के लिए है - ANSI-89 सिंटैक्स में कोई नहीं है, इसलिए कई डेटाबेस ने स्वयं को लागू किया (जो किसी अन्य डेटाबेस में पोर्ट नहीं करता है) ) IE:Oracle का (+) , SQL सर्वर का =*



  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. SQL सर्वर में एस्केप कैरेक्टर

  4. कैसे सही ढंग से nvarchar . में नई पंक्ति सम्मिलित करने के लिए

  5. दो तिथियों के बीच सभी दिनांक डेटा दिखाएं; यदि किसी विशेष तिथि के लिए कोई पंक्ति मौजूद नहीं है तो सभी कॉलम में शून्य दिखाएं