JOIN SQL-এর একটি শক্তিশালী ফিচার যা একাধিক টেবিলের মধ্যে সম্পর্ক তৈরি করে এবং একযোগে ডাটা নির্বাচন করার জন্য ব্যবহৃত হয়। SQLite সহ অন্যান্য ডেটাবেস সিস্টেমে তিনটি প্রধান ধরনের JOIN রয়েছে: INNER JOIN, LEFT JOIN (বা LEFT OUTER JOIN), এবং RIGHT JOIN (বা RIGHT OUTER JOIN)।
এগুলোর মাধ্যমে আপনি একাধিক টেবিলের ডাটা যুক্ত (combine) করতে পারেন এবং বিভিন্ন ধরনের সম্পর্ক দেখতে পারেন। নিচে প্রতিটি JOIN-এর মাধ্যমে কুয়েরি করার পদ্ধতি দেওয়া হলো।
১. INNER JOIN
INNER JOIN দুটি টেবিলের মধ্যে সেই সব রেকর্ড বের করে যেগুলোর মধ্যে সম্পর্কিত কলামের মান মিলে। এর মাধ্যমে আপনি শুধুমাত্র সেই রেকর্ডগুলো পাবেন যেগুলোর মধ্যে মিল আছে।
উদাহরণ:
ধরা যাক, আমাদের দুটি টেবিল রয়েছে: employees এবং departments।
employees টেবিল:
| id | name | department_id |
|---|---|---|
| 1 | Alice | 1 |
| 2 | Bob | 2 |
| 3 | Charlie | 1 |
departments টেবিল:
| id | department_name |
|---|---|
| 1 | HR |
| 2 | IT |
এখন আমরা INNER JOIN ব্যবহার করে কর্মচারীদের নাম এবং তাদের বিভাগের নাম দেখতে চাই।
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;
আউটপুট:
| name | department_name |
|---|---|
| Alice | HR |
| Bob | IT |
| Charlie | HR |
এখানে শুধুমাত্র কর্মচারী এবং তাদের বিভাগের সম্পর্কিত রেকর্ডগুলো প্রদর্শিত হয়েছে, যেগুলোর মধ্যে মিল রয়েছে।
২. LEFT JOIN (বা LEFT OUTER JOIN)
LEFT JOIN (বা LEFT OUTER JOIN) বাম (left) টেবিলের সমস্ত রেকর্ড এবং ডান (right) টেবিলের মিল খুঁজে পাওয়া রেকর্ডগুলো দেখায়। যদি ডান টেবিলের সঙ্গে কোন মিল না থাকে, তবে বাম টেবিলের ডাটা এবং NULL শো করবে ডান টেবিলের জন্য।
উদাহরণ:
আমরা একই employees এবং departments টেবিল ব্যবহার করছি। এবার, আমরা LEFT JOIN ব্যবহার করে কর্মচারীদের নাম এবং তাদের বিভাগের নাম দেখতে চাই, এমনকি যদি কোনো কর্মচারী নির্দিষ্ট কোনো বিভাগের সাথে সম্পর্কিত না থাকে।
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;
আউটপুট:
| name | department_name |
|---|---|
| Alice | HR |
| Bob | IT |
| Charlie | HR |
| Dave | NULL |
এখানে Dave কর্মচারীর কোনো বিভাগ নেই, তাই NULL দেখানো হয়েছে department_name কলামে।
৩. RIGHT JOIN (বা RIGHT OUTER JOIN)
RIGHT JOIN (বা RIGHT OUTER JOIN) ডান (right) টেবিলের সমস্ত রেকর্ড এবং বাম (left) টেবিলের মিল খুঁজে পাওয়া রেকর্ডগুলো দেখায়। যদি বাম টেবিলের সঙ্গে মিল না থাকে, তবে ডান টেবিলের ডাটা এবং NULL শো করবে বাম টেবিলের জন্য।
উদাহরণ:
এখন, আমরা RIGHT JOIN ব্যবহার করব এবং টেবিলের নাম ও বিভাগ দেখতে চাই:
SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments ON employees.department_id = departments.id;
আউটপুট:
| name | department_name |
|---|---|
| Alice | HR |
| Bob | IT |
| Charlie | HR |
| NULL | Sales |
এখানে, Sales বিভাগের জন্য কোনো কর্মচারী নেই, তাই name কলামে NULL দেখানো হয়েছে।
সারাংশ
- INNER JOIN: দুটি টেবিলের মধ্যে মিল থাকা রেকর্ডগুলো প্রদর্শন করে।
- LEFT JOIN: বাম টেবিলের সমস্ত রেকর্ড এবং ডান টেবিলের মিল পাওয়া রেকর্ডগুলো প্রদর্শন করে। যদি ডান টেবিলের সাথে কোনো মিল না থাকে, তবে বাম টেবিলের রেকর্ড দেখানো হয় এবং ডান টেবিলের জন্য
NULLথাকে। - RIGHT JOIN: ডান টেবিলের সমস্ত রেকর্ড এবং বাম টেবিলের মিল পাওয়া রেকর্ডগুলো প্রদর্শন করে। যদি বাম টেবিলের সাথে কোনো মিল না থাকে, তবে ডান টেবিলের রেকর্ড দেখানো হয় এবং বাম টেবিলের জন্য
NULLথাকে।
JOIN অপারেশনগুলি ডাটাবেসে বিভিন্ন টেবিলের মধ্যে সম্পর্ক তৈরি করার জন্য খুবই গুরুত্বপূর্ণ এবং এটি ডেটা বিশ্লেষণ এবং রিপোর্ট তৈরি করতে ব্যবহৃত হয়।
Read more