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

कौन सी SQL क्वेरी तेज़ है? जॉइन क्राइटेरिया या व्हेयर क्लॉज पर फ़िल्टर करें?

प्रदर्शन-वार, वे समान हैं (और समान योजनाएँ बनाते हैं)

तार्किक रूप से, यदि आप INNER JOIN . को प्रतिस्थापित करते हैं, तो आपको उस ऑपरेशन को करना चाहिए जो अभी भी समझ में आता है एक LEFT JOIN के साथ ।

आपके मामले में यह इस तरह दिखेगा:

SELECT  *
FROM    TableA a
LEFT JOIN
        TableXRef x
ON      x.TableAID = a.ID
        AND a.ID = 1
LEFT JOIN
        TableB b
ON      x.TableBID = b.ID

या यह:

SELECT  *
FROM    TableA a
LEFT JOIN
        TableXRef x
ON      x.TableAID = a.ID
LEFT JOIN
        TableB b
ON      b.id = x.TableBID
WHERE   a.id = 1

पिछली क्वेरी a.id . के लिए कोई वास्तविक मिलान नहीं लौटाएगी 1 . के अलावा , इसलिए बाद वाला सिंटैक्स (WHERE . के साथ) ) तार्किक रूप से अधिक सुसंगत है।



  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 सर्वर में अद्यतन कैस्केड के साथ विदेशी कुंजी बाधा कैसे बनाएं - SQL सर्वर / TSQL ट्यूटोरियल भाग 79

  2. मुझे sql सर्वर में टेबल वैरिएबल बनाम अस्थायी टेबल का उपयोग कब करना चाहिए?

  3. SQL सर्वर सम्मिलित उदाहरण

  4. SQL सर्वर में एक पहचान कॉलम का मूल बीज लौटाएं

  5. पंक्ति, पृष्ठ और टेबल लॉक क्या हैं? और कब उनका अधिग्रहण किया जाता है?