SQL JOIN একটি অপারেশন যা দুটি বা তার বেশি টেবিলের মধ্যে সম্পর্ক স্থাপন করতে ব্যবহৃত হয়। JOIN অপারেশনটি ডেটাবেজের মধ্যে সম্পর্কিত টেবিল থেকে ডেটা একত্রিত করার জন্য ব্যবহৃত হয়। SQL JOIN এর বিভিন্ন ধরনের রয়েছে, যেগুলোর মাধ্যমে আপনি নির্দিষ্ট শর্ত অনুযায়ী টেবিলগুলোর ডেটা মিলিয়ে পেতে পারেন।
এখানে আমরা চারটি প্রধান JOIN টাইপ সম্পর্কে বিস্তারিত আলোচনা করব:
- INNER JOIN
- LEFT JOIN (LEFT OUTER JOIN)
- RIGHT JOIN (RIGHT OUTER JOIN)
- FULL OUTER JOIN
INNER JOIN
INNER JOIN হল সবচেয়ে সাধারণ এবং প্রায়শই ব্যবহৃত JOIN অপারেশন। এটি দুটি টেবিলের মধ্যে মিল থাকা রেকর্ডগুলোকে একত্রিত করে। যখন দুটি টেবিলের মধ্যে একটি সাধারণ কলাম থাকে এবং সেই কলামে একে অপরের সাথে সম্পর্কিত ডেটা থাকে, তখন INNER 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)
LEFT JOIN বা LEFT OUTER JOIN ব্যবহার করে আপনি বাম দিকের (প্রথম) টেবিলের সমস্ত রেকর্ড এবং ডান দিকের (দ্বিতীয়) টেবিলের মিল থাকা রেকর্ডগুলো ফেরত পাবেন। যদি ডান টেবিলের সাথে কোনো মিল না থাকে, তবে ডান টেবিলের কলামগুলিতে NULL ফেরত আসবে।
কীভাবে কাজ করে?
- LEFT JOIN বাম টেবিলের সমস্ত রেকর্ডকে রাখে, এবং ডান টেবিলের মিল থাকা রেকর্ডগুলো যোগ করে।
- যদি ডান টেবিলের কোন রেকর্ড না মেলে, তাহলে ডান টেবিলের কলামে
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)
RIGHT JOIN বা RIGHT OUTER JOIN হল LEFT JOIN এর বিপরীত। এটি ডান দিকের (দ্বিতীয়) টেবিলের সমস্ত রেকর্ড এবং বাম দিকের (প্রথম) টেবিলের মিল থাকা রেকর্ডগুলো ফেরত দেয়। যদি বাম টেবিলের সাথে কোনো মিল না থাকে, তবে বাম টেবিলের কলামগুলিতে NULL ফেরত আসবে।
কীভাবে কাজ করে?
- RIGHT JOIN ডান টেবিলের সমস্ত রেকর্ড এবং বাম টেবিলের মিল থাকা রেকর্ডগুলো ফেরত দেয়।
- যদি বাম টেবিলের কোনো রেকর্ড না মেলে, তাহলে বাম টেবিলের কলামগুলিতে
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
FULL OUTER JOIN হল LEFT JOIN এবং RIGHT JOIN এর সংমিশ্রণ। এটি দুটি টেবিলের সমস্ত রেকর্ডকে মিলিয়ে ফিরিয়ে দেয়, এমনকি যদি কোনো রেকর্ডের মিল না থাকে। যদি এক টেবিলের সঙ্গে অন্য টেবিলের কোন রেকর্ড মেলানো না যায়, তাহলে সেই টেবিলের কলামে NULL দেখানো হয়।
কীভাবে কাজ করে?
- FULL OUTER JOIN দুটি টেবিলের সমস্ত রেকর্ডকে ফেরত দেয়, এবং যেখানে মিল থাকে না, সেখানে
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 হিসেবে প্রদর্শিত হয়েছে।
Joins এর তুলনা
| 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 টাইপ। এগুলির মাধ্যমে আপনি বিভিন্ন শর্তে টেবিলগুলোর ডেটা একত্রিত করতে পারেন এবং বিভিন্ন ধরনের সম্পর্কের মধ্যে মিল খুঁজে বের করতে পারেন।