সাধারণ পরিস্থিতিতে ফিল্টার শর্তগুলি WHERE বা JOIN ক্লজগুলিতে নির্দিষ্ট করা যেতে পারে। আমি যেখানে যোগ না দিয়ে অগ্রণীতাকে প্রভাবিত করতে না পারি (নীচে দেখুন) বা ফিল্টারটি যদি সেই টেবিলের সাথে খুব নির্দিষ্ট থাকে (যেমন, টেবিলের সারিগুলির একটি নির্দিষ্ট উপসেট নির্দিষ্ট করার জন্য TYPE = 12) তবে ফিল্টারগুলি WHERE এর অধীনে রাখি।
অন্যদিকে চালু এবং যেখানে উভয় ধারা ব্যবহারের শর্তগুলি নির্দিষ্ট করতে (ফিল্টার শর্তের বিপরীতে) ব্যবহৃত হতে পারে। যতক্ষণ আপনি কেবল ইনার ব্যবহার করেন ততক্ষণ আপনি সাধারণ পরিস্থিতিতে যা ব্যবহার করেন তা এখনও বিবেচ্য নয়।
আপনি যদি OUTER ব্যবহার করে থাকেন তবে এটি একটি বিরাট পরিমাণে পার্থক্য করতে পারে। উদাহরণস্বরূপ, আপনি দুটি সারণির (টি 1 এবং টি 2) এর মধ্যে একটি বাহ্যিক যোগ নির্দিষ্ট করে থাকেন তবে তারপরে, যেখানে সারণিতে, সারণির (যেমন t1.col = t2.col) মধ্যে একটি ইজিজোয়েন সম্পর্ক নির্দিষ্ট করতে যান, আপনার ঠিক আছে OUTER join এ INNER join এ রূপান্তর করুন! এটি হ'ল কারণ যেখানে একটি ওয়ান ক্লজটি ব্যবহার না করে ইক্যুইজন (বা সম্ভবত এমনকি আউটর জয়েন, সংস্করণের উপর নির্ভর করে অবহেলিত * = সিনট্যাক্স ব্যবহার করে) নির্দিষ্ট করতে ব্যবহার করা যেতে পারে, এবং যখন টেবিলগুলির মধ্যে একটি অভ্যন্তরীণ সমতা নির্দেশ করে, তখন এটি একটি আউটরাইডকে ওভাররাইড করে যোগ দিন (উপস্থিত থাকলে)
মূল প্রশ্নটি ফিল্টারগুলি সম্পর্কে ছিল, যেখানে যোগদানের ধরণটি প্রায়শই কোনও সমস্যা হওয়া উচিত নয়, তবে একটি যোগদানও একটি ফিল্টার হিসাবে কাজ করতে পারে এবং এই পরিস্থিতিতে যোগদানের শর্তটির অবস্থান অবশ্যই গুরুত্বপূর্ণ।