मैं निम्न तालिकाओं है:एक बाएँ का उपयोग करना शामिल होने और यदि पंक्ति में एक और चेक के साथ ही अस्तित्व में जाँच जहां खंड
Users
Banned
SELECT u.*
FROM Users
WHERE u.isActive = 1
AND
u.status <> 'disabled'
मैं किसी भी पंक्तियों जहां उपयोगकर्ता भी हो सकता है शामिल करने के लिए नहीं करना चाहते हैं प्रतिबंधित टेबल
ऐसा करने का सबसे अच्छा तरीका क्या है? मैं यह कैसे कर सकता है
u.status <> 'disabled' and not exist (SELECT 1 FORM Banned where userId = @userId)
मुझे लगता है कि सबसे अच्छा तरीका है एक बायाँ शामिल हों ऐसा करने के लिए हो सकता है,:
मैं इस जहां खंड में एक सबक्वेरी डाल करता है तो यह की तरह कुछ कर सकता है?
सहायक, प्रासंगिक और महत्वपूर्ण लेकिन सीधे सवाल का जवाब नहीं देता है। शायद रेडफिल्टर के जवाब को अपने आप में शामिल करें - ओपी * कैसे * चीजों को जिस तरीके से उसने पूछा, उसे दिखाएं, और फिर * समझाएं कि उसे क्यों नहीं करना चाहिए? –
@ मार्क एमेरी, यह उत्तर लिंक एक उत्कृष्ट लेख को इंगित करता है, न कि मौजूदा बनाम बनाम बाएं जॉइन/आईएस न्यूल: एसक्यूएल सर्वर 'जो यहां एक उत्तर में संभव होगा, उससे अधिक विस्तार से आगे बढ़ता है। यह उत्तर स्पष्ट रूप से उस लंबे लेख को सारांशित करता है: 'EXIFSTS LEFT JOIN/IS NULL' –
+1 @GarethD से अधिक कुशल नहीं है, मैं केवल बाएं जुड़ने का उपयोग करता हूं जब परिणाम तालिका में दाएं तालिका से डेटा लौटाया जाना चाहिए। यदि सही तालिका से डेटा वापस करने की आवश्यकता नहीं है, तो विरोधी अर्ध-संयोजक ऑपरेटरों का लाभ उठाएं और केवल अस्तित्व की जांच करें। – brian