SQL Dilinde LEFT JOIN Kullanımı
SQL veritabanlarında, farklı tablolar arasında ilişkisel veri kümelerini birleştirmek temel bir işlemdir. LEFT JOIN (sol dış birleşim) işlemi, iki veya daha fazla tabloyu belirli bir koşul üzerinden birleştirirken, sol tablodaki tüm kayıtları, sağ tablodaki eşleşen kayıtlarla birlikte döndürür. Sağ tabloda eşleşme bulunamayan durumlarda, sağ tablonun sütunları için NULL değerleri döndürülür. Bu makale, LEFT JOIN'in sözdizimini, detaylı açıklamasını ve pratik kullanım örneklerini sunmaktadır.
Temel Sözdizimi
LEFT JOIN komutunun genel sözdizimi aşağıdaki gibidir:
SELECT
    sutun1, sutun2, ...
FROM
    sol_tablo
LEFT JOIN
    sag_tablo
ON
    sol_tablo.eslesme_sutunu = sag_tablo.eslesme_sutunu;Detaylı Açıklama
SELECT sutun1, sutun2, ...: Sorgu sonucunda döndürülmesini istediğiniz sütunları belirtirsiniz. Bu sütunlar hem sol hem de sağ tablodan gelebilir.FROM sol_tablo: Birleşimin sol tarafında yer alacak ana tabloyu belirtir. Bu tablodaki tüm kayıtlar sonuç kümesine dahil edilecektir.LEFT JOIN sag_tablo: Birleşimin sağ tarafında yer alacak tabloyu belirtir. Sol tablodaki kayıtlarla eşleşen kayıtlar bu tablodan alınır.ON sol_tablo.eslesme_sutunu = sag_tablo.eslesme_sutunu: İki tablo arasındaki eşleşme koşulunu tanımlar. Bu koşul genellikle birincil anahtar (PRIMARY KEY) ve yabancı anahtar (FOREIGN KEY) ilişkisi üzerinden kurulur.
Pratik Kullanım Örnekleri
Aşağıdaki örneklerde, Musteriler ve Siparisler adında iki tablo kullandığımızı varsayalım. Musteriler tablosunda MusteriID, Ad, Soyad sütunları; Siparisler tablosunda ise SiparisID, MusteriID, SiparisTarihi, Tutar sütunları bulunmaktadır.
Örnek 1: Tüm Müşterileri ve Varsa Siparişlerini Listeleme
Bu sorgu, tüm müşterileri ve onların mevcut siparişlerini listeler. Eğer bir müşterinin hiç siparişi yoksa, Siparisler tablosuna ait sütunlar için NULL değerleri döndürülür.
SELECT
    M.MusteriID,
    M.Ad,
    M.Soyad,
    S.SiparisID,
    S.SiparisTarihi,
    S.Tutar
FROM
    Musteriler AS M
LEFT JOIN
    Siparisler AS S ON M.MusteriID = S.MusteriID;Örnek 2: Henüz Sipariş Vermemiş Müşterileri Bulma
LEFT JOIN ile birlikte WHERE koşulu kullanarak, sağ tabloda eşleşme bulunamayan kayıtları filtreleyebiliriz. Bu örnekte, henüz sipariş vermemiş müşteriler listelenir.
SELECT
    M.MusteriID,
    M.Ad,
    M.Soyad
FROM
    Musteriler AS M
LEFT JOIN
    Siparisler AS S ON M.MusteriID = S.MusteriID
WHERE
    S.SiparisID IS NULL;Örnek 3: Birden Fazla LEFT JOIN Kullanımı
Birden fazla tabloyu birleştirmek için zincirleme LEFT JOIN kullanılabilir. Örneğin, müşterilerin siparişlerini ve bu siparişlerin detaylarını görmek isteyebiliriz. SiparisDetaylari adında bir üçüncü tablo olduğunu varsayalım.
SELECT
    M.Ad,
    S.SiparisID,
    SD.UrunAdi,
    SD.Miktar
FROM
    Musteriler AS M
LEFT JOIN
    Siparisler AS S ON M.MusteriID = S.MusteriID
LEFT JOIN
    SiparisDetaylari AS SD ON S.SiparisID = SD.SiparisID;Önemli Notlar
Sol Tablo Önceliği:
LEFT JOIN, sol tablonun tüm kayıtlarını garanti eder. Sağ tabloda eşleşme bulunmasa bile sol tablodaki kayıtlar sonuç kümesinde yer alır.NULLDeğerleri: Sağ tabloda eşleşen kayıt bulunamadığında, sağ tablodaki sütunlar içinNULLdeğerleri döndürülür. Bu durum, eşleşmeyen kayıtları filtrelemek (örneğin,WHERE sag_tablo.anahtar_sutun IS NULLkullanarak) için kullanılabilir.Performans Etkisi: Büyük tablolarda
JOINişlemleri performans üzerinde etkili olabilir. İndeksli sütunlar üzerinde birleştirme yapmak sorgu hızını artırır.Alias Kullanımı: Tablo isimleri için kısa takma adlar (
AS M,AS Sgibi) kullanmak, sorguyu daha okunaklı hale getirir ve yazım hatalarını azaltır.INNER JOINile Farkı:INNER JOINyalnızca iki tabloda da eşleşen kayıtları döndürürken,LEFT JOINsol tablonun tüm kayıtlarını döndürür ve sağ tablodaki eşleşmeyenler içinNULLkullanır.
        
                
            
Yorum yap
Yorumlar