SQL তে JOIN ব্যবহার করে একাধিক টেবিল থেকে সম্পর্কিত ডেটা একত্রিত করা যায়। JOIN এর মাধ্যমে আপনি একাধিক টেবিলের মধ্যে সম্পর্ক স্থাপন করে তথ্য একত্র করতে পারেন। এতে আপনি এক বা একাধিক টেবিলের কলাম এবং রেকর্ড ব্যবহার করতে পারেন, যেগুলি কোনো একক সম্পর্কের মাধ্যমে সংযুক্ত।
SQL-এ বিভিন্ন ধরনের JOIN আছে, এবং প্রতিটি JOIN একাধিক টেবিলের মধ্যে সম্পর্ক স্থাপন এবং ডেটা আনতে ব্যবহৃত হয়।
JOIN-এর ধরন:
- INNER JOIN
- LEFT JOIN (LEFT OUTER JOIN)
- RIGHT JOIN (RIGHT OUTER JOIN)
- FULL JOIN (FULL OUTER JOIN)
১. INNER JOIN
INNER JOIN দুটি টেবিলের মধ্যে এমন রেকর্ডগুলো নির্বাচন করে যেখানে উভয় টেবিলের মধ্যে সম্পর্কিত তথ্য থাকে। অর্থাৎ, দুটি টেবিলের মিলিত ডেটা দেখানোর জন্য এটি ব্যবহার হয়।
INNER JOIN এর সিনট্যাক্স:
SELECT columns
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
উদাহরণ:
ধরা যাক, দুটি টেবিল আছে:
employees(কর্মচারীদের তথ্য)departments(বিভাগের তথ্য)
SELECT employees.first_name, employees.last_name, departments.department_name
FROM employees
INNER JOIN departments
ON employees.department_id = departments.department_id;
এখানে:
employeesটেবিলেরdepartment_idকলাম এবংdepartmentsটেবিলেরdepartment_idকলামের মাধ্যমে সম্পর্ক স্থাপন করা হয়েছে।INNER JOINদিয়ে শুধু সেই কর্মচারীদের তথ্য পাওয়া যাবে, যাদের বিভাগ রয়েছে (যেহেতু উভয় টেবিলেই সম্পর্কিত তথ্য থাকতে হবে)।
২. LEFT JOIN (LEFT OUTER JOIN)
LEFT JOIN বা LEFT OUTER JOIN দিয়ে আপনি প্রথম (বাম) টেবিলের সব রেকর্ড এবং দ্বিতীয় (ডান) টেবিলের সম্পর্কিত রেকর্ডগুলি পাবেন। যদি দ্বিতীয় টেবিলে কোন সম্পর্কিত রেকর্ড না থাকে, তবে সেই কলামে NULL মান দেখানো হয়।
LEFT JOIN এর সিনট্যাক্স:
SELECT columns
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
উদাহরণ:
SELECT employees.first_name, employees.last_name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.department_id;
এখানে:
LEFT JOINব্যবহার করলেemployeesটেবিলের সব কর্মচারীদের তথ্য দেখা যাবে, এবং যেখানে সম্পর্কিত বিভাগ পাওয়া যাবে, সেখানেইdepartment_nameদেখাবে। যদি কোন কর্মচারীর বিভাগ না থাকে, তবে সেই কলামেNULLপ্রদর্শিত হবে।
৩. RIGHT JOIN (RIGHT OUTER JOIN)
RIGHT JOIN বা RIGHT OUTER JOIN হল LEFT JOIN এর বিপরীত। এতে ডান (RIGHT) টেবিলের সব রেকর্ড এবং বাম (LEFT) টেবিলের সম্পর্কিত রেকর্ডগুলি পাওয়া যাবে। যদি বাম টেবিলের কোন সম্পর্কিত রেকর্ড না থাকে, তবে সেই কলামে NULL মান দেখানো হয়।
RIGHT JOIN এর সিনট্যাক্স:
SELECT columns
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
উদাহরণ:
SELECT employees.first_name, employees.last_name, departments.department_name
FROM employees
RIGHT JOIN departments
ON employees.department_id = departments.department_id;
এখানে:
RIGHT JOINব্যবহার করলেdepartmentsটেবিলের সব বিভাগের তথ্য দেখা যাবে, এবং যেখানে কর্মচারী উপস্থিত থাকবেন, সেখানেই তাদের নাম এবং বিভাগ থাকবে। যেখানে কর্মচারী নেই, সেখানেNULLপ্রদর্শিত হবে।
৪. FULL JOIN (FULL OUTER JOIN)
FULL JOIN বা FULL OUTER JOIN উভয় টেবিলের সব রেকর্ড দেখায়, এবং যেখানে সম্পর্কিত রেকর্ড পাওয়া যায়, সেখানে তথ্য প্রদর্শিত হয়। যেখানে সম্পর্ক নেই, সেখানে NULL প্রদর্শিত হয়।
FULL JOIN এর সিনট্যাক্স:
SELECT columns
FROM table1
FULL JOIN table2
ON table1.column_name = table2.column_name;
উদাহরণ:
SELECT employees.first_name, employees.last_name, departments.department_name
FROM employees
FULL JOIN departments
ON employees.department_id = departments.department_id;
এখানে:
FULL JOINব্যবহার করলেemployeesএবংdepartmentsটেবিলের সব রেকর্ড প্রদর্শিত হবে। কোন টেবিলের সাথে সম্পর্কিত রেকর্ড না থাকলে, সেখানেNULLপ্রদর্শিত হবে।
JOIN-এর মাধ্যমে একাধিক টেবিলের ডেটা আনা
ধরা যাক, আপনি তিনটি টেবিলের মধ্যে ডেটা একত্রিত করতে চান:
employees: কর্মচারী সম্পর্কিত তথ্য।departments: বিভাগের তথ্য।projects: প্রকল্পের তথ্য।
JOIN-এর মাধ্যমে তিনটি টেবিলের ডেটা একত্রিত করা:
SELECT employees.first_name, employees.last_name, departments.department_name, projects.project_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id
INNER JOIN projects ON employees.employee_id = projects.employee_id;
এখানে:
- প্রথম
INNER JOINদিয়েemployeesএবংdepartmentsটেবিলের সম্পর্ক স্থাপন করা হয়েছে। - দ্বিতীয়
INNER JOINদিয়েemployeesএবংprojectsটেবিলের সম্পর্ক স্থাপন করা হয়েছে। - এটি কর্মচারী, তাদের বিভাগ এবং প্রকল্পের নাম একত্রে প্রদর্শন করবে।
সারাংশ
- INNER JOIN: শুধুমাত্র মিল থাকা রেকর্ড দেখায়।
- LEFT JOIN: বাম টেবিলের সব রেকর্ড দেখায়, ডান টেবিলের সম্পর্কিত রেকর্ড দেখায়।
- RIGHT JOIN: ডান টেবিলের সব রেকর্ড দেখায়, বাম টেবিলের সম্পর্কিত রেকর্ড দেখায়।
- FULL JOIN: উভয় টেবিলের সব রেকর্ড দেখায়, যেখানে সম্পর্ক নেই সেখানে
NULL।
এই JOIN প্রকারগুলি আপনাকে SQL-এ একাধিক টেবিল থেকে সম্পর্কযুক্ত ডেটা খুব সহজেই একত্রিত করতে সাহায্য করবে।
Read more