SQL LEFT JOIN Keyword

زبان SQL برای اینکه همه رکوردهای جدول سمت چپ نمایش داده بشن (حتی اگه در جدول سمت راست دادهٔ مطابق نداشته باشن)، از LEFT JOIN یا LEFT OUTER JOIN استفاده می‌کنیم.

🔹 ساختار کلی

SELECT columns FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
  • تمام رکوردهای جدول سمت چپ (table1) انتخاب می‌شن.

  • اگر در جدول سمت راست (table2) مقدار مطابق وجود داشته باشه، نمایش داده میشه.

  • اگر مطابق وجود نداشته باشه، مقادیر ستون‌های جدول سمت راست NULL خواهند بود.

🔹 مثال ساده

جدول: Customers

idnamecity
1AliTehran
2SaraMashhad
3RezaTabriz

جدول: Orders

order_idcustomer_idamount
1011500
1022300

کوئری:

SELECT Customers.name, Orders.amount FROM Customers LEFT JOIN Orders ON Customers.id = Orders.customer_id;

📌 خروجی:

nameamount
Ali500
Sara300
RezaNULL

توضیح: مشتری Reza سفارش نداده، اما چون از LEFT JOIN استفاده شده، باز هم در خروجی هست و مقدار سفارش (amount) براش NULL شده.

🔹 استفاده از Alias

SELECT c.name, o.amount FROM Customers c LEFT JOIN Orders o ON c.id = o.customer_id;

🔹 LEFT JOIN در مقابل INNER JOIN

  • INNER JOIN فقط رکوردهایی رو میاره که در هر دو جدول مقدار مشترک دارن.

  • LEFT JOIN همه رکوردهای جدول سمت چپ رو میاره، حتی اگر در جدول سمت راست داده‌ای نباشه.

نکات مهم

  • LEFT JOIN و LEFT OUTER JOIN یکی هستن (OUTER اختیاریه).

  • وقتی بخواید همه داده‌های جدول اصلی (سمت چپ) رو داشته باشید، حتی بدون دادهٔ مرتبط، باید از LEFT JOIN استفاده کنید.

  • در دیتابیس‌هایی مثل MySQL، Oracle، SQL Server همه به همین شکل پشتیبانی میشه.