JOIN অপারেশন SQL (Structured Query Language) এ দুটি বা ততোধিক টেবিলের মধ্যে সম্পর্ক স্থাপন করে একটি নতুন রিলেশন তৈরি করতে ব্যবহৃত হয়। JOIN এর মাধ্যমে বিভিন্ন টেবিলের মধ্যে সম্পর্কিত তথ্য একসাথে নিয়ে আসা হয়। JOIN এর প্রকারভেদগুলি ডেটা বের করার পদ্ধতি অনুসারে আলাদা। নিচে INNER JOIN, OUTER JOIN, LEFT JOIN এবং RIGHT JOIN সম্পর্কে বিস্তারিত আলোচনা করা হলো।
১. INNER JOIN
INNER JOIN হল সবচেয়ে সাধারণ JOIN অপারেশন। এটি দুটি টেবিলের মধ্যে সম্পর্ক স্থাপন করে এবং শুধুমাত্র সেই রেকর্ডগুলো প্রদান করে যেখানে উভয় টেবিলের মধ্যে সম্পর্কিত ডেটা পাওয়া যায়।
সিনট্যাক্স:
SELECT columns
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name;
উদাহরণ:
এই উদাহরণে, কেবলমাত্র সেই শিক্ষার্থীদের নাম এবং কোর্সের নাম বের করা হবে যারা কোর্সে ভর্তি হয়েছে।
SELECT Students.Name, Courses.CourseName
FROM Students
INNER JOIN Enrollment ON Students.StudentID = Enrollment.StudentID
INNER JOIN Courses ON Enrollment.CourseID = Courses.CourseID;
২. OUTER JOIN
OUTER JOIN তিনটি ভাগে বিভক্ত হয়: LEFT JOIN, RIGHT JOIN, এবং FULL OUTER JOIN। OUTER JOIN উভয় টেবিলের সমস্ত রেকর্ডকে অন্তর্ভুক্ত করে এবং সম্পর্কিত ডেটা না থাকলে NULL মান প্রদান করে।
২.১ LEFT JOIN
LEFT JOIN (বা LEFT OUTER JOIN) বাম টেবিলের সমস্ত রেকর্ড এবং ডান টেবিলের সম্পর্কিত রেকর্ডগুলো প্রদান করে। যদি ডান টেবিলে সম্পর্কিত রেকর্ড না পাওয়া যায় তবে NULL মান প্রদান করা হয়।
সিনট্যাক্স:
SELECT columns
FROM table1
LEFT JOIN table2 ON table1.column_name = table2.column_name;
উদাহরণ:
এই উদাহরণে, সকল শিক্ষার্থীর নাম এবং তাদের কোর্সের নাম দেখানো হবে, তবে যদি কোন শিক্ষার্থী কোর্সে ভর্তি না হয়, তবে CourseName NULL হবে।
SELECT Students.Name, Courses.CourseName
FROM Students
LEFT JOIN Enrollment ON Students.StudentID = Enrollment.StudentID
LEFT JOIN Courses ON Enrollment.CourseID = Courses.CourseID;
২.২ RIGHT JOIN
RIGHT JOIN (বা RIGHT OUTER JOIN) ডান টেবিলের সমস্ত রেকর্ড এবং বাম টেবিলের সম্পর্কিত রেকর্ডগুলো প্রদান করে। যদি বাম টেবিলে সম্পর্কিত রেকর্ড না পাওয়া যায় তবে NULL মান প্রদান করা হয়।
সিনট্যাক্স:
SELECT columns
FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.column_name;
উদাহরণ:
এখানে, সকল কোর্সের নাম এবং সংশ্লিষ্ট শিক্ষার্থীদের নাম দেখা যাবে, এবং যদি কোন কোর্সে শিক্ষার্থী না থাকে তবে Name NULL হবে।
SELECT Students.Name, Courses.CourseName
FROM Students
RIGHT JOIN Enrollment ON Students.StudentID = Enrollment.StudentID
RIGHT JOIN Courses ON Enrollment.CourseID = Courses.CourseID;
২.৩ FULL OUTER JOIN
FULL OUTER JOIN উভয় টেবিলের সমস্ত রেকর্ডকে অন্তর্ভুক্ত করে। সম্পর্কিত ডেটা না থাকলে NULL মান প্রদান করা হয়।
সিনট্যাক্স:
SELECT columns
FROM table1
FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;
উদাহরণ:
এই উদাহরণে, সকল শিক্ষার্থীর নাম এবং সকল কোর্সের নাম দেখা যাবে, এবং যদি কোন শিক্ষার্থী বা কোর্সের জন্য সম্পর্কিত রেকর্ড না থাকে তবে NULL মান প্রদর্শিত হবে।
SELECT Students.Name, Courses.CourseName
FROM Students
FULL OUTER JOIN Enrollment ON Students.StudentID = Enrollment.StudentID
FULL OUTER JOIN Courses ON Enrollment.CourseID = Courses.CourseID;
উপসংহার
JOIN অপারেশন ডেটাবেসের মধ্যে সম্পর্কিত তথ্য একত্রিত করার জন্য একটি শক্তিশালী টুল। INNER JOIN, LEFT JOIN, RIGHT JOIN, এবং FULL OUTER JOIN এর মাধ্যমে ব্যবহারকারীরা প্রয়োজনীয় তথ্য কার্যকরভাবে পেতে পারে। সঠিক JOIN নির্বাচন করা ডেটার উপর ভিত্তি করে কার্যকারিতা এবং ফলাফল নিশ্চিত করে।