सामान्य परिस्थितियों में, फ़िल्टर की शर्तों को WHERE या JOIN क्लॉस में निर्दिष्ट किया जा सकता है। जब तक OUTER JOIN पूर्वता प्रभावित नहीं हो सकती (जब तक कि नीचे दी गई है) या यदि फ़िल्टर तालिका के लिए बहुत विशिष्ट है (जैसे TYPE = 12 तालिका में पंक्तियों का एक विशिष्ट सबसेट निर्दिष्ट करने के लिए), तो मैं WHERE के तहत फ़िल्टर्स रखना पसंद करता हूँ।
दूसरी ओर ON और WHERE क्लॉज़ दोनों का उपयोग जुड़ने की स्थिति (फ़िल्टर की शर्तों के विपरीत) को निर्दिष्ट करने के लिए किया जा सकता है। जब तक आप केवल INNER जॉइन का उपयोग कर रहे हैं, तब भी यह कोई फर्क नहीं पड़ेगा जो आप सामान्य परिस्थितियों में उपयोग करते हैं।
यदि आप OUTER जॉइन का उपयोग कर रहे हैं, हालांकि, यह बहुत अंतर कर सकता है। यदि, उदाहरण के लिए, आप दो तालिकाओं (t1 और t2) के बीच एक OUTER JOIN निर्दिष्ट करते हैं, लेकिन तब, WHERE क्लॉज में, तालिकाओं के बीच एक eqijoin संबंध निर्दिष्ट करें (जैसे t1.col = t2.col), आपके पास बस OUTER को INNER जॉइन में परिवर्तित करें! इसका कारण यह है कि WH समान का उपयोग करने के लिए इस्तेमाल किया जा सकता है (या हो सकता है कि OUTER भी शामिल हो, संस्करण पर निर्भर करते हुए, एक खंड का उपयोग किए बिना, * * वाक्यविन्यास) का उपयोग करते हुए, और जब WHER तालिकाओं के बीच एक आंतरिक समरूपता का संकेत देता है, तो यह एक OUTER पर निर्भर करता है जोइन (यदि मौजूद है)।
मूल प्रश्न फ़िल्टर के बारे में था, जिसमें अक्सर शामिल होने का प्रकार एक मुद्दा नहीं होना चाहिए, लेकिन एक जुड़ाव भी फ़िल्टर के रूप में कार्य कर सकता है और उन स्थितियों में शामिल होने की स्थिति का स्थान निश्चित रूप से मायने रख सकता है।