Juniorسختی 2 از ۵· در 88٪ مصاحبههای این حوزه پرسیده شده
تفاوت INNER JOIN و LEFT JOIN چیست؟
☆نشان کردنپاسخ کوتاه
INNER JOIN فقط ردیفهای منطبق در هر دو جدول را برمیگرداند؛ LEFT JOIN همهٔ ردیفهای جدول چپ را حتی بدون تطابق (با NULL در ستونهای راست) برمیگرداند.
پاسخ کامل
اگر مشتریای هیچ سفارشی ثبت نکرده باشد، INNER JOIN آن مشتری را اصلاً نمایش نمیدهد چون تطابقی در جدول Orders وجود ندارد. LEFT JOIN همان مشتری را با مقدار NULL برای ستونهای Orders نشان میدهد.
مثال کد
SELECT c.Name, o.Id AS OrderId
FROM Customers c
LEFT JOIN Orders o ON o.CustomerId = c.Id;
نکته مهم
برای گزارش «همهٔ مشتریان، حتی بدون سفارش» همیشه از LEFT JOIN استفاده کنید.
اشتباه رایج
❌ استفاده از INNER JOIN وقتی هدف نمایش همهٔ ردیفهای یک طرف حتی بدون تطابق است.
