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

SQL सर्वर में LEFT ANTI SEMI JOIN कैसे करें?

LEFT ANTI SEMI JOIN एक प्रकार का जुड़ाव है जो केवल बाईं पंक्ति में उन विशिष्ट पंक्तियों को लौटाता है जिनकी दाहिनी पंक्ति में कोई मिलान पंक्ति नहीं है।

लेकिन SQL सर्वर में T-SQL का उपयोग करते समय, यदि आप स्पष्ट रूप से LEFT ANTI SEMI JOIN का उपयोग करने का प्रयास करते हैं आपकी क्वेरी में, आपको शायद निम्न त्रुटि मिलेगी:

Msg 155, Level 15, State 1, Line 4
'ANTI' is not a recognized join option.

सौभाग्य से, SQL सर्वर में EXCEPT . शामिल है ऑपरेटर, जो हमें LEFT ANTI SEMI JOIN perform करने की अनुमति देता है ।

जब आप EXCEPT . का उपयोग करते हैं ऑपरेटर, यह क्वेरी निष्पादन योजना में LEFT ANTI SEMI JOIN . के रूप में दिखाई देता है ।

आप एक सबक्वेरी भी बना सकते हैं जो वही काम करती है।

उदाहरण

कल्पना कीजिए कि हमारे पास दो टेबल हैं; Cats और Dogs , और फिर हम निम्नलिखित क्वेरी चलाते हैं:

SELECT 
    CatName AS PetName
FROM Cats
EXCEPT
SELECT 
    DogName AS PetName
FROM Dogs;

यह क्वेरी EXCEPT . का उपयोग करती है ऑपरेटर, और यह LEFT ANTI SEMI JOIN के रूप में दिखाई देगा निष्पादन योजना में।

यह निम्न कार्य करने के समान है:

SELECT 
    DISTINCT CatName
FROM Cats c 
WHERE NOT EXISTS (SELECT DogName FROM Dogs d
WHERE c.CatName = d.DogName);

यहाँ उस क्वेरी के लिए निष्पादन योजना है:

यदि आप Azure Data Lake Analytics के साथ U-SQL का उपयोग करते हैं, तो आप ANTISEMIJOIN का उपयोग कर सकते हैं दाएँ और बाएँ विरोधी अर्ध-जुड़ने के लिए उपवाक्य। यानी आप LEFT ANTISEMIJOIN . का इस्तेमाल कर सकते हैं या RIGHT ANTISEMIJOIN


  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 सर्वर - गतिशील PIVOT तालिका - SQL इंजेक्शन

  2. SQL सर्वर में @@ TEXTSIZE क्या है?

  3. मैं प्राथमिक कुंजी को AUTOINCREMENT के रूप में कैसे बना सकता हूँ?

  4. SQL सर्वर 2017 प्रबंधन उपकरण

  5. GETDATE() SQL सर्वर में उदाहरण (T-SQL)