SQL JOIN একটি অপারেশন যা দুটি বা তার বেশি টেবিলের মধ্যে সম্পর্ক স্থাপন করতে ব্যবহৃত হয়। JOIN অপারেশনটি ডেটাবেজের মধ্যে সম্পর্কিত টেবিল থেকে ডেটা একত্রিত করার জন্য ব্যবহৃত হয়। SQL JOIN এর বিভিন্ন ধরনের রয়েছে, যেগুলোর মাধ্যমে আপনি নির্দিষ্ট শর্ত অনুযায়ী টেবিলগুলোর ডেটা মিলিয়ে পেতে পারেন।
এখানে আমরা চারটি প্রধান JOIN টাইপ সম্পর্কে বিস্তারিত আলোচনা করব:
INNER JOIN হল সবচেয়ে সাধারণ এবং প্রায়শই ব্যবহৃত JOIN অপারেশন। এটি দুটি টেবিলের মধ্যে মিল থাকা রেকর্ডগুলোকে একত্রিত করে। যখন দুটি টেবিলের মধ্যে একটি সাধারণ কলাম থাকে এবং সেই কলামে একে অপরের সাথে সম্পর্কিত ডেটা থাকে, তখন INNER JOIN ব্যবহৃত হয়।
কীভাবে কাজ করে?
SELECT columns
FROM table1
INNER JOIN table2
ON table1.column = table2.column;
ধরা যাক, আমাদের দুটি টেবিল আছে: employees
এবং departments
।
-- employees table
id | name | department_id
------------------------------
1 | John | 1
2 | Jane | 2
3 | Bob | 1
-- departments table
id | department_name
----------------------
1 | HR
2 | Engineering
INNER JOIN ব্যবহার করে employees
এবং departments
টেবিল থেকে সেই রেকর্ডগুলো নির্বাচন করা হবে যাদের department_id
মিলে।
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments
ON employees.department_id = departments.id;
আউটপুট:
name | department_name
------------------------
John | HR
Jane | Engineering
Bob | HR
এখানে, department_id
এর সাথে মেলে এমন রেকর্ডগুলোই দেখানো হয়েছে।
LEFT JOIN বা LEFT OUTER JOIN ব্যবহার করে আপনি বাম দিকের (প্রথম) টেবিলের সমস্ত রেকর্ড এবং ডান দিকের (দ্বিতীয়) টেবিলের মিল থাকা রেকর্ডগুলো ফেরত পাবেন। যদি ডান টেবিলের সাথে কোনো মিল না থাকে, তবে ডান টেবিলের কলামগুলিতে NULL
ফেরত আসবে।
কীভাবে কাজ করে?
NULL
দেখাবে।SELECT columns
FROM table1
LEFT JOIN table2
ON table1.column = table2.column;
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.id;
আউটপুট:
name | department_name
------------------------
John | HR
Jane | Engineering
Bob | HR
এখানে, LEFT JOIN ব্যবহার করলে যদি কোনো কর্মী department_id
এর সাথে মেলে এমন বিভাগ না পায়, তবে তার জন্য NULL
প্রদর্শিত হবে। তবে, আমাদের উদাহরণে প্রত্যেক কর্মীর সাথে একটি বিভাগের সম্পর্ক রয়েছে, তাই ফলাফলটি INNER JOIN
এর মতোই হবে।
RIGHT JOIN বা RIGHT OUTER JOIN হল LEFT JOIN এর বিপরীত। এটি ডান দিকের (দ্বিতীয়) টেবিলের সমস্ত রেকর্ড এবং বাম দিকের (প্রথম) টেবিলের মিল থাকা রেকর্ডগুলো ফেরত দেয়। যদি বাম টেবিলের সাথে কোনো মিল না থাকে, তবে বাম টেবিলের কলামগুলিতে NULL
ফেরত আসবে।
কীভাবে কাজ করে?
NULL
ফেরত আসে।SELECT columns
FROM table1
RIGHT JOIN table2
ON table1.column = table2.column;
SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments
ON employees.department_id = departments.id;
আউটপুট:
name | department_name
------------------------
John | HR
Jane | Engineering
Bob | HR
NULL | Marketing
এখানে, Marketing
বিভাগটি employees
টেবিলে কোনো মিল না পাওয়ায়, NULL
নামের কলামে ফেরত এসেছে।
FULL OUTER JOIN হল LEFT JOIN এবং RIGHT JOIN এর সংমিশ্রণ। এটি দুটি টেবিলের সমস্ত রেকর্ডকে মিলিয়ে ফিরিয়ে দেয়, এমনকি যদি কোনো রেকর্ডের মিল না থাকে। যদি এক টেবিলের সঙ্গে অন্য টেবিলের কোন রেকর্ড মেলানো না যায়, তাহলে সেই টেবিলের কলামে NULL
দেখানো হয়।
কীভাবে কাজ করে?
NULL
দেখানো হয়।SELECT columns
FROM table1
FULL OUTER JOIN table2
ON table1.column = table2.column;
SELECT employees.name, departments.department_name
FROM employees
FULL OUTER JOIN departments
ON employees.department_id = departments.id;
আউটপুট:
name | department_name
------------------------
John | HR
Jane | Engineering
Bob | HR
NULL | Marketing
এখানে, FULL OUTER JOIN
ব্যবহার করার ফলে, employees
এবং departments
টেবিলের মধ্যে মিল না থাকা রেকর্ডগুলো NULL
হিসেবে প্রদর্শিত হয়েছে।
JOIN Type | Description | Result |
---|---|---|
INNER JOIN | শুধুমাত্র মিল থাকা রেকর্ডগুলো ফেরত দেয় | মিল থাকা রেকর্ডগুলো এবং শুধুমাত্র সেগুলোর তথ্য |
LEFT JOIN | বাম টেবিলের সমস্ত রেকর্ড এবং ডান টেবিলের মিল থাকা রেকর্ডগুলো | বাম টেবিলের সমস্ত রেকর্ড এবং ডান টেবিলের মিল থাকা রেকর্ডগুলো |
RIGHT JOIN | ডান টেবিলের সমস্ত রেকর্ড এবং বাম টেবিলের মিল থাকা রেকর্ডগুলো | ডান টেবিলের সমস্ত রেকর্ড এবং বাম টেবিলের মিল থাকা রেকর্ডগুলো |
FULL OUTER JOIN | দুটি টেবিলের সমস্ত রেকর্ড এবং মিল না থাকা রেকর্ডগুলো | দুটি টেবিলের সমস্ত রেকর্ড, যেখানে মিল না থাকে সেখানে NULL |
SQL JOIN অপারেশন ডেটাবেজের একাধিক টেবিলের মধ্যে সম্পর্ক স্থাপন করতে সহায়ক। INNER JOIN, LEFT JOIN, RIGHT JOIN, এবং FULL OUTER JOIN হল সবচেয়ে ব্যবহৃত JOIN টাইপ। এগুলির মাধ্যমে আপনি বিভিন্ন শর্তে টেবিলগুলোর ডেটা একত্রিত করতে পারেন এবং বিভিন্ন ধরনের সম্পর্কের মধ্যে মিল খুঁজে বের করতে পারেন।