SQL INNER JOIN স্টেটমেন্ট দুই টেবিলের দুটি কলামে সঠিক মিলে যাওয়া মানवाले সারিগুলো ফেরত দেয়। আপনি এক বা একাধিক কলাম জুড়ে টেবিল জয়েন করতে পারেন। JOIN স্টেটমেন্ট দুই ডেটাবেস টেবিল সংযুক্ত করে এবং তাদের কন্টেন্ট তুলনা করে।
এই আর্টিকেলে আমরা INNER JOIN কীভাবে ব্যবহার করতে হয় সেটি আলোচনা করব।
SQL INNER JOIN
SQL INNER JOIN নির্দিষ্ট দুটি টেবিলে কলাম মান যা উপস্থিত থাকে সকল রেকর্ড পুনরুদ্ধার করে। একটি INNER JOIN স্টেটমেন্ট ON কিওয়ার্ড ব্যবহার করে দুই টেবিল জুড়ে ডেটা মিলিয়ে।
INNER JOIN হলো SQL join-এর সবচেয়ে সাধারণ প্রকার। অপারেটরটি সেই রেকর্ডগুলো ফেরত দেয় যাদের দুই টেবিলে মিল আছে।
INNER JOIN কিওয়ার্ডের সিনট্যাক্স দেখি:
SELECT name
FROM customers
INNER JOIN plans
ON customers.plan_id = plans.id;
এই কোয়েরি "customers" এবং "plans" টেবিলের সারি একত্রিত করে। এটি সকল কাস্টমারের তালিকা ফেরত দেয় যাদের "plan_id" "plans" টেবিলের যেকোনো ID-এর সমান।
আমরা INNER JOIN ক্লজ ব্যবহার করি আমাদের টেবিল জয়েন করতে। ON কিওয়ার্ড জয়েন করা টেবিলের নামের পর আসে। আপনি ON কিওয়ার্ডের পর একাধিক শর্ত নির্দিষ্ট করতে পারেন কমা দিয়ে আলাদা করে।
INNER JOIN SQL উদাহরণ
এখন, আমাদের একটি কর্মী ডেটাবেস আছে যা প্রতিটি কর্মীর ডিপার্টমেন্ট ID employees টেবিলে সংরক্ষণ করে। আমরা এই টেবিল SQL CREATE TABLE স্টেটমেন্ট দিয়ে তৈরি করেছি। ডিপার্টমেন্টের নামগুলো আলাদা একটি টেবিলে company_departments নামে সংরক্ষিত।
এখানে employees টেবিল:
| employees | ||
|---|---|---|
| name | title | department_id |
| Luke |
Sales Associate | 1 |
| Mike | Sales Associate | 1 |
| Hannah | Sales Associate | 1 |
| Geoff | Senior Sales Associate | 1 |
| Alexis | Sales Associate | 1 |
| Jonah | Vice President of Sales | 3 |
| Emma | Marketing Director | 2 |
(৭ সারি)
এটি ডিপার্টমেন্টস টেবিল:
| company_departments | |
|---|---|
| department_id | name |
| 1 | sales |
| 2 | marketing |
| 3 | executive |
(৩ সারি)
ধরুন আমরা সকল কর্মীর নাম, টাইটেল, এবং ডিপার্টমেন্টের নাম পেতে চাই। এই ডেটা দুটি টেবিলে রয়েছে: কর্মীর নাম এবং টাইটেল employees টেবিলে। ডিপার্টমেন্টের নাম company_departments টেবিলে।
আমরা কীভাবে আমাদের চাওয়া তথ্য পাব?
employees টেবিলে department_id নামক একটি কলাম আছে। এই কলাম প্রতিটি কর্মী যে ডিপার্টমেন্টে কাজ করে তার ID ধারণ করে।
company_departments টেবিলে, প্রতিটি ডিপার্টমেন্টের ও একটি ID আছে (যা টেবিলে প্রাইমারি কি)। এর মানে আমরা একটি কর্মীর department_id ডিপার্টমেন্টের তালিকার সাথে মিলিয়ে দিতে পারি। এটি করলে আমরা জানতে পারব সেই কর্মী কোন ডিপার্টমেন্টে কাজ করে।
চলুন একটি কোয়েরি লিখি যা একটি কর্মীর নাম, তাদের টাইটেল, এবং সে যে ডিপার্টমেন্টে কাজ করে তার নাম পুনরুদ্ধার করবে:
SELECT Employees.Name, Employees.Title, Company_Departments.Name FROM Employees INNER JOIN Company_Departments ON Employees.Department_ID = Company_Departments.Department_ID;
আমাদের কোয়েরি নিচের মিলে যাওয়া সারিগুলো ফেরত দেয়:
| name | title | name |
| Alexis | Sales Associate | Sales |
| Geoff | Senior Sales Associate | Sales |
| Hannah | Sales Associate | Sales |
| Mike | Sales Associate | Sales |
| Luke | Sales Associate | Sales |
| Emma | Marketing Director | Marketing |
| Jonah | Vice President of Sales | Executive |
প্রথম লাইনে, আমরা ডেটাবেসকে বলি কর্মীর নাম এবং টাইটেল employees টেবিল থেকে নাও। আমরা একটি কোম্পানি ডিপার্টমেন্টের নামও company_departments টেবিল থেকে নাও।
দ্বিতীয় লাইনে, আমরা নির্দিষ্ট করি আমরা কর্মীর তথ্য employees টেবিল থেকে চাই। তারপর, আমরা আমাদের INNER JOIN ব্যবহার করি আমাদের employees টেবিল company_departments টেবিলের সাথে সংযুক্ত করতে, যাতে ডিপার্টমেন্টের নাম থাকে।
চূড়ান্তে, আমাদের শেষ লাইন দুই employees এবং company_departments টেবিলকে তাদের সাধারণ ফিল্ড দিয়ে লিঙ্ক করে, এই কেসে department_id।
উপসংহার
SQL INNER JOIN স্টেটমেন্ট দুই টেবিল জুড়ে দুটি কলামে মিলে যাওয়া মানवाले রেকর্ড পুনরুদ্ধার করে। ON স্টেটমেন্ট আপনাকে আপনার ইনার জয়েন কোন শর্তে এক্সিকিউট হবে সেটি নির্দিষ্ট করতে দেয়।
জয়েন মাস্টার করা SQL ডেটাবেস কোয়েরি করার একটি গুরুত্বপূর্ণ অংশ, এবং এই বোঝাপড়া আপনাকে এক ধাপ নিকটে নিয়ে যাবে SQL এক্সপার্ট হওয়ার দিকে।
আমরা শিখার ইচ্ছুকদের মতো আপনাদের SQL মাস্টার করতে সাহায্য করার জন্য একটি how to learn SQL গাইড লিখেছি। এই গাইডে শীর্ষ লার্নিং রিসোর্স এবং কোর্সের তালিকা এবং SQL শিখতে পরামর্শ আছে। গাইডটি আমাদের How to Learn SQL পেজে দেখুন।