Database Tutorials WHERE এবং FROM Clause এ Subquery ব্যবহার গাইড ও নোট

344

Subquery হল একটি SQL প্রশ্ন যা অন্য একটি SQL প্রশ্নের ভিতরে থাকে। এটি সাধারণত WHERE, FROM, বা SELECT ক্লজের মধ্যে একটি নির্দিষ্ট শর্তের জন্য ব্যবহৃত হয়। Subqueries খুবই শক্তিশালী, কারণ তারা মূল কুয়েরির মাধ্যমে পরোক্ষভাবে ডেটা বিশ্লেষণ করতে সাহায্য করে এবং তা বিভিন্ন পরিস্থিতিতে ব্যবহৃত হতে পারে।

১. WHERE ক্লজে Subquery

WHERE ক্লজে Subquery সাধারণত নির্দিষ্ট শর্তে ফিল্টার করার জন্য ব্যবহার করা হয়। এই প্রক্রিয়ায় একটি উপ-কুয়েরি (subquery) মূল কুয়েরির ফলাফলকে সীমিত করতে সাহায্য করে। IN, NOT IN, EXISTS, এবং NOT EXISTS কন্ডিশনগুলির সাথে Subquery ব্যবহার করা সবচেয়ে সাধারণ।

উদাহরণ 1: IN Subquery ব্যবহার করা

ধরা যাক, আমাদের কাছে দুটি টেবিল রয়েছে: employees এবং departments। আমরা এমন কর্মচারীদের খুঁজে বের করতে চাই যাদের department_id একটি নির্দিষ্ট ডিপার্টমেন্টের সাথে মেলে।

-- এমন কর্মচারী যাদের department_id department টেবিল থেকে পাওয়া ডিপার্টমেন্টের সাথে মেলে
SELECT * FROM employees 
WHERE department_id IN (SELECT department_id FROM departments WHERE department_name = 'Engineering');

এখানে, প্রথম SELECT কুয়েরি departments টেবিল থেকে 'Engineering' ডিপার্টমেন্টের department_id খুঁজে বের করে এবং তারপর মূল কুয়েরি employees টেবিল থেকে এই department_id এর ভিত্তিতে ডেটা নির্বাচন করে।

উদাহরণ 2: EXISTS Subquery ব্যবহার করা

EXISTS Subquery যখন কোনো রেকর্ডের অস্তিত্ব পরীক্ষা করতে ব্যবহৃত হয়।

-- এমন কর্মচারী যাদের একটি নির্দিষ্ট প্রকল্পে কাজ করার রেকর্ড রয়েছে
SELECT * FROM employees e
WHERE EXISTS (SELECT 1 FROM projects p WHERE p.employee_id = e.employee_id AND p.project_name = 'Project A');

এখানে, Subquery যাচাই করছে যে প্রকল্পের নাম 'Project A' আছে কি না, এবং যদি থাকে, তাহলে প্রধান কুয়েরি সেই কর্মচারীকে ফিরিয়ে দেবে।


২. FROM ক্লজে Subquery ব্যবহার

FROM ক্লজে Subquery সাধারণত একটি টেবিল বা ভিউ হিসেবে ব্যবহার করা হয়। এটি একটি Inline View বা Derived Table হিসেবে কাজ করে, যেখানে Subquery টেবিল হিসেবে কার্যকরী হয় এবং মূল কুয়েরি সেটি থেকে তথ্য অনুসন্ধান করে।

উদাহরণ 1: FROM ক্লজে Subquery ব্যবহার করা

ধরা যাক, আমাদের কাছে employees টেবিল এবং departments টেবিল রয়েছে, এবং আমরা প্রত্যেক ডিপার্টমেন্টের গড় বেতন বের করতে চাই। কিন্তু departments টেবিলের মধ্যে ডিপার্টমেন্টের সাথে সম্পর্কিত কর্মচারী তথ্য নেই, সুতরাং আমরা employees টেবিলের মধ্য দিয়ে এই তথ্য পাব।

-- প্রতি ডিপার্টমেন্টের গড় বেতন বের করা
SELECT department_name, AVG(salary) AS avg_salary
FROM (SELECT e.department_id, e.salary, d.department_name 
      FROM employees e
      JOIN departments d ON e.department_id = d.department_id) AS department_salaries
GROUP BY department_name;

এখানে, Subquery (যা FROM ক্লজে ব্যবহার করা হয়েছে) প্রথমে employees এবং departments টেবিলকে যোগ (JOIN) করে এবং তারপর মূল কুয়েরি এই সাব-কুয়েরি থেকে ডেটা নিয়ে গড় বেতন হিসাব করে।

উদাহরণ 2: FROM ক্লজে Subquery ব্যবহার করা অন্য উদাহরণ

-- বিভাগ অনুযায়ী মোট কর্মচারী সংখ্যা বের করা
SELECT department_name, COUNT(*) AS total_employees
FROM (SELECT e.department_id, d.department_name
      FROM employees e
      JOIN departments d ON e.department_id = d.department_id) AS department_employees
GROUP BY department_name;

এখানে, Subquery একটি অন্তর্নিহিত টেবিল হিসেবে কাজ করছে যা employees এবং departments টেবিলের ডেটা একত্র করে। তারপর, মূল কুয়েরি সেই ডেটা ব্যবহার করে বিভাগ অনুযায়ী কর্মচারীর সংখ্যা গণনা করছে।


সংক্ষেপে:

  • WHERE ক্লজে Subquery: কোনো নির্দিষ্ট শর্তের জন্য ফিল্টার করতে ব্যবহৃত হয়। এটি সাধারণত IN, NOT IN, EXISTS, NOT EXISTS কন্ডিশনের সাথে ব্যবহৃত হয়।
  • FROM ক্লজে Subquery: একটি টেবিল বা ভিউ হিসেবে ব্যবহৃত হয়। এটি মূল কুয়েরির জন্য অন্তর্নিহিত ডেটা প্রদান করে, যেমন একাধিক টেবিলের সাথে যুক্ত করে বা গণনা করা ডেটা ফেরত দেয়।

Subqueries SQL এর শক্তিশালী বৈশিষ্ট্য এবং এটি ডেটা বিশ্লেষণ ও তথ্য অনুসন্ধানে খুবই কার্যকরী।

Content added By
Promotion

Are you sure to start over?

Loading...