ए 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
।