Laravel join, left join, right join example
Laravel Query Builder-এ join, leftJoin, এবং rightJoin ব্যাখ্যা করছি নিচে — সহজ ভাষায় এবং সাথে কিছু simple ও complex relationship example code-ও দেব।
🔸 1. join() – INNER JOIN
join() ব্যবহার করলে দুটি টেবিলের মধ্যে matching rows-গুলো পাওয়া যায়।
✅ Example:
ব্যাখ্যা: এখানে orders টেবিলের সাথে users টেবিলকে match করা হয়েছে orders.user_id = users.id এর উপর ভিত্তি করে।
🔸 2. leftJoin() – LEFT OUTER JOIN
leftJoin() সবসময় বামদিকের টেবিল (প্রথম টেবিল) এর সব rows ফেরত দেয়, এমনকি যদি দ্বিতীয় টেবিলে মিল না থাকে।
✅ Example:
ব্যাখ্যা: যদি কোনো user-এর orders না-ও থাকে, তবুও users.name দেখাবে এবং orders.order_date null হবে।
🔸 3. rightJoin() – RIGHT OUTER JOIN
rightJoin() সবসময় ডানদিকের টেবিল (দ্বিতীয় টেবিল) এর সব rows ফেরত দেয়, এমনকি যদি প্রথম টেবিলে মিল না থাকে।
✅ Example:
ব্যাখ্যা: users টেবিলের সব rows দেখা যাবে, এমনকি যদি কোনো orders না থাকে।
🔁 Complex Relation Example (Three Table Join)
ধরা যাক, তিনটা টেবিল আছে:
-
orders(order info) -
users(who ordered) -
products(which product ordered)
ব্যাখ্যা: এখানে orders কে users ও products এর সাথে join করা হয়েছে। আমরা order ID, customer name, এবং product name পাচ্ছি।
🧠 Bonus: Join with Where and Pagination
ব্যাখ্যা: কেবল active ইউজারদের order দেখাবে এবং ১০টি করে paginate করবে।
🔍 Tips:
-
Use
leftJoinwhen you want all records from the primary table even if there's no match. -
Use
joinwhen you're sure both tables have matching records. -
Use
rightJoinvery rarely; instead, often you can switch table order and useleftJoin.
Laravel Query Builder দিয়ে multiple table join এর কয়েকটা practical উদাহরণ দেখাচ্ছি — সহজ থেকে একটু complex পর্যন্ত।
🔹 Scenario: তিনটা টেবিল আছে
-
users:
id,name -
orders:
id,user_id,product_id,order_date -
products:
id,name,price
✅ Example 1: Basic 3-table Join
ব্যাখ্যা: এখানে আমরা orders টেবিলের সাথে users ও products টেবিলকে জোড়া লাগিয়েছি। ফলে আমরা কে কোন প্রোডাক্ট কখন অর্ডার করেছে সেটা জানতে পারছি।
✅ Example 2: Join + Where Condition
ব্যাখ্যা: কেবল active users এবং যেসব প্রোডাক্টের দাম ১০০ টাকার বেশি – এমন অর্ডার গুলো দেখাচ্ছে।
✅ Example 3: Join with leftJoin and NULL Checking
ধরো কিছু order আছে যেগুলোর user বা product null হতে পারে।
ব্যাখ্যা: এমন record-ও পাওয়া যাবে যেখানে user বা product নাই, কিন্তু order আছে।
✅ Example 4: 4-table Join (Advanced)
-
categories:
id,name -
products:
id,name,category_id -
orders:
id,product_id,user_id -
users:
id,name
ব্যাখ্যা: এখানে চারটা টেবিল যুক্ত করে আমরা জানছি – কোন কাস্টমার কোন ক্যাটাগরির কোন প্রোডাক্ট অর্ডার করেছে।
🔚 Summary:
-
join= exact match -
leftJoin= মূল টেবিলের সব ডাটা রাখবে -
multiple join = simply একটার পর একটা join করো
-
.select()দিয়ে পছন্দমতো কলাম তুলে নাও
No comments