ए LEFT SEMI JOIN
एक प्रकार का आधा-जुड़ाव है। यह कोई भी विशिष्ट मान देता है जो क्वेरी के बाईं और दाईं ओर दोनों क्वेरी द्वारा लौटाया जाता है।
हालाँकि, SQL सर्वर में T-SQL का उपयोग करते समय, यदि आप स्पष्ट रूप से LEFT SEMI JOIN
का उपयोग करने का प्रयास करते हैं आपकी क्वेरी में, आपको शायद निम्न त्रुटि मिलेगी:
Msg 155, Level 15, State 1, Line 4
'SEMI' is not a recognized join option.
सौभाग्य से, T-SQL में INTERSECT
. शामिल है ऑपरेटर, जो हमें LEFT SEMI JOIN
. करने की अनुमति देता है ।
जब आप INTERSECT
. का उपयोग करते हैं ऑपरेटर, यह क्वेरी निष्पादन योजना में LEFT SEMI JOIN
. के रूप में दिखाई देता है ।
आप एक सबक्वेरी भी बना सकते हैं जो वही काम करती है।
उदाहरण
कल्पना कीजिए कि हमारे पास दो टेबल हैं; Cats
और Dogs
, और फिर हम निम्नलिखित क्वेरी चलाते हैं:
SELECT
CatName AS PetName
FROM Cats
INTERSECT
SELECT
DogName AS PetName
FROM Dogs;
यह क्वेरी INTERSECT
. का उपयोग करती है ऑपरेटर, और इसलिए यह LEFT SEMI JOIN
. के रूप में दिखाई देगा निष्पादन योजना में।
यह निम्न कार्य करने के समान है:
SELECT
DISTINCT CatName
FROM Cats c
WHERE EXISTS (SELECT DogName FROM Dogs d
WHERE c.CatName = d.DogName);
यहाँ उस क्वेरी के लिए निष्पादन योजना है:
यदि आप Azure डेटा लेक एनालिटिक्स के साथ U-SQL का उपयोग करते हैं, तो आप SEMIJOIN
. का उपयोग कर सकते हैं दाएँ और बाएँ अर्ध-जुड़ने के लिए उपवाक्य। यानी आप LEFT SEMIJOIN
. का इस्तेमाल कर सकते हैं या RIGHT SEMIJOIN
।