İçeriğe geç
parazade

LEFT JOIN Nedir?

Yayın: · Son güncelleme:

LEFT JOIN Nedir? Kısaca

LEFT JOIN, SQL'de soldaki tablonun tüm satırlarını getiren, sağdaki tablodan ise yalnızca eşleşen satırları ekleyen birleştirme türüdür. Eşleşme olmayan satırlarda sağ tablonun sütunları NULL olarak döner.

LEFT JOIN nedir?
İçindekiler
  1. LEFT JOIN nedir?
  2. Örnek kullanım
  3. Eşleşmeyen kayıtları bulma
  4. Nelere dikkat etmeli?

LEFT JOIN nedir?

LEFT JOIN, sorguda ilk yazılan (soldaki) tabloyu esas alan birleştirmedir. Soldaki her satır sonuçta mutlaka yer alır. Sağdaki tabloda eşi varsa o bilgiler yanına eklenir, yoksa ilgili sütunlar boş (NULL) kalır.

Tam adı LEFT OUTER JOIN'dir, ama OUTER kelimesi genellikle yazılmaz. INNER JOIN ile arasındaki temel fark, eşi bulunmayan satırların korunmasıdır.

Örnek kullanım

Varsayımsal bir online mağazada tüm müşterileri ve varsa son sipariş tutarlarını görmek istediğinizi düşünün:

SELECT m.ad, s.tutar
FROM musteriler m
LEFT JOIN siparisler s ON s.musteri_id = m.id;

Hiç sipariş vermemiş müşteriler de listede görünür ve tutar sütunları NULL olur. INNER JOIN kullansaydınız bu müşteriler sonuçtan tamamen kaybolurdu.

Eşleşmeyen kayıtları bulma

LEFT JOIN'in pratik bir kullanımı, "karşılığı olmayan" kayıtları tespit etmektir. Hiç sipariş vermemiş müşterileri bulmak için sorgunun sonuna WHERE s.id IS NULL eklemeniz yeterlidir. Pazarlama ekibi bu listeyi, örneğin kayıt olup alışveriş yapmayan 800 kişiye hatırlatma e-postası göndermek için kullanabilir.

Nelere dikkat etmeli?

Sağ tabloya ait bir koşulu WHERE'e yazmak, LEFT JOIN'i fark ettirmeden INNER JOIN'e çevirebilir. Örneğin WHERE s.tutar > 100 eklediğinizde sipariş vermemiş müşteriler yine düşer. Bu tür süzmeleri ON ifadesinin içine taşımak, soldaki satırları korur. Toplama yaparken NULL değerlerin hesaba nasıl girdiğini de kontrol edin; COALESCE ile boş değerleri sıfıra çevirmek sık kullanılan bir çözümdür.

Sıkça Sorulan Sorular

LEFT JOIN ile RIGHT JOIN arasındaki fark nedir?

LEFT JOIN soldaki tablonun, RIGHT JOIN ise sağdaki tablonun tüm satırlarını korur. Tabloların yerini değiştirerek her RIGHT JOIN sorgusu LEFT JOIN olarak yazılabilir; bu yüzden pratikte LEFT JOIN daha yaygındır.

LEFT JOIN neden satır sayısını artırabilir?

Soldaki bir satırın sağ tabloda birden fazla eşi varsa, o satır her eş için ayrı ayrı tekrar eder. Örneğin üç siparişi olan müşteri sonuçta üç satır olarak görünür.

İlgili terimler