Kodkitabi

LEFT / RIGHT / FULL JOIN

Eşleşmeyen kayıtları da içerecek şekilde dış birleştirme (Outer Joins) işlemleri.

Bazen iki tabloyu birleştirirken, bir tabloda karşılığı (eşleşmesi) olmasa bile tüm kayıtları getirmek isteyebiliriz. Bu durumda OUTER JOIN çeşitleri kullanılır:

  • LEFT JOIN: Sol tablodaki tüm kayıtları getirir. Sağ tabloda eşleşen kayıt varsa verileri birleştirir, yoksa sağ tablonun kolonlarını NULL olarak döner.
  • RIGHT JOIN: Sağ tablodaki tüm kayıtları getirir. Sol tabloda eşleşen kayıt yoksa sol kolonlar NULL döner.
  • FULL JOIN: Her iki tablodaki tüm kayıtları birleştirerek getirir. Eşleşmeyen tüm alanlar NULL ile doldurulur.
LEFT JOIN ve Dış Birleştirme Örnekleri
-- Hiç çalışanı olmayan departmanlar dahil tüm departmanları listeleme
SELECT d.department_name, e.first_name, e.last_name
FROM departments AS d
LEFT JOIN employees AS e ON d.id = e.dept_id;

-- LEFT JOIN ile eşleşmeyen (NULL olan) boş kayıtları filtreleme
-- Örnek: Henüz hiçbir sipariş vermemiş müşterileri bulma
SELECT c.customer_name, o.order_id
FROM customers AS c
LEFT JOIN orders AS o ON c.id = o.customer_id
WHERE o.order_id IS NULL;