একটি JOIN একটি শর্ত মিলিয়ে দুটি টেবিল থেকে row একত্রিত করে, সাধারণত একটি foreign key। join-এর type নির্ধারণ করে অন্য পাশে কোনো মিল নেই এমন row-গুলোর কী হবে।
একটি JOIN একটি শর্ত মিলিয়ে দুটি টেবিল থেকে row একত্রিত করে, সাধারণত একটি foreign key। join-এর type নির্ধারণ করে অন্য পাশে কোনো মিল নেই এমন row-গুলোর কী হবে।
NULL হয়ে ফিরে আসে।-- customers(id, name) orders(id, customer_id, total)
-- INNER: only customers who have at least one order
SELECT c.name, o.total
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id;
-- LEFT: every customer, even those with zero orders (total = NULL)
SELECT c.name, o.total
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id;
-- Classic use: find customers with NO orders
SELECT c.name
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id
WHERE o.id IS NULL; -- the LEFT JOIN's NULL side reveals the gap
WHERE-এ ডান টেবিল filter করা (যেমন WHERE o.total > 100) নীরবে একটি LEFT JOIN-কে আবার INNER JOIN-এ পরিণত করে, কারণ NULL > 100 false। unmatched row রাখতে চাইলে এমন শর্ত ON clause-এ রাখুন।বেশিরভাগ বাস্তব query একাধিক টেবিল জুড়ে বিস্তৃত হয়, এবং ভুল join type নীরবে row বাদ দেয় বা duplicate করে — এমন একটি bug যা যুক্তিসঙ্গত ফলাফল ফেরত দেয়। LEFT JOIN + IS NULL "missing" row খুঁজে পায়, এবং null পাশে একটি WHERE LEFT বাতিল করে দেয় — এটি জানা reporting error-এর একটি সম্পূর্ণ শ্রেণী প্রতিরোধ করে।
বিস্তারিত উত্তরসহ IT ইন্টারভিউ প্রশ্নের একটি লাইব্রেরি — জুনিয়র থেকে সিনিয়র পর্যন্ত।
দান করুন