LEFT JOIN (tam adıyla LEFT OUTER JOIN), INNER JOIN'e çok benzer ama önemli bir farkı vardır: soldaki tablonun tüm satırlarını korur, sağ tabloda eşleşme olmasa bile.
Senaryo
Employees tablosunda bir çalışanın (Alice Brown) DepartmentID değeri boş (NULL) olsun — yani henüz bir departmana atanmamış olsun.
LEFT JOIN Kullanımı
SELECT e.EmployeeName, d.DepartmentName
FROM Employees e
LEFT JOIN Departments d
ON e.DepartmentID = d.DepartmentID;
Bu sorgu tüm çalışanları listeler. Alice Brown gibi departmanı eşleşmeyen bir çalışan için DepartmentName sütunu boş (NULL) gelir — ama satır sonuçtan düşmez.
INNER JOIN ile Farkı
Aynı sorguyu INNER JOIN ile yazsaydık:
SELECT e.EmployeeName, d.DepartmentName
FROM Employees e
INNER JOIN Departments d
ON e.DepartmentID = d.DepartmentID;
Bu durumda Alice Brown sonuçtan tamamen kaybolurdu — çünkü INNER JOIN yalnızca her iki tabloda da eşleşen satırları getirir.
Hangi Yönü "Left"?
Sorguda FROM ile başlayan tablo (yani Employees) "sol" (left) tablodur — LEFT JOIN bu tablonun tüm satırlarını garanti eder, JOIN ile eklenen tablo (Departments) ise yalnızca eşleşen bilgiyi katkıda bulunur, eşleşme yoksa NULL bırakır.
Sırada Ne Var?
Serinin bu bölümüne kadar JOIN ailesini işledik. Sırada, bir sorgu sonucuna koşullu bir kolon eklemenizi sağlayan CASE yapısı var.