Bu farkı anlamak için şu senaryo üzerinden gidelim (senaryoyu ilk yazan kişi BradC’dir, stackoverflowdan bakmak için tıklayın) .

Bu senaryoyu görselleştirerek daha kolay anlaşılabilir hale getirdim.

Senaryo şöyle:

100 öğrenci var.

50 dolap var.

70′inin dolabı var.

Dolaplardan bazılarını bir kaç öğrenci birden kullanıyor. (40 dolap müşterek)

Bazı dolapları ise kimse kullanmıyor (10 dolap komple boş)

Böyle bir durumda:

Sadece dolabı olan öğrencileri

Tüm öğrencileri (dolabı olanlar dahil)

Tüm dolapları (boşlar dahil)

nasıl listeleriz?

Cevaptaki ifadeler yerine şu çizimi yaptım:

image

Gördüğünüz gibi;

INNER JOIN: Kesişim kümesini verir sadece dolap kullanan öğrencileri döndürür 70 öğrenci gelir.

LEFTJOIN: Hem dolap kullanmayan öğrencileri hem de kullananları döndürür 100 öğrenci döner.

RIGHT JOIN ise boş dolaplar dahil tüm dolapları döndürür.

Daha kompleks JOIN komutları da var. Şurada:

image

SQL’de INNER, LEFT ve OUTER JOIN farkı’ için 4 yanıt

  1. Merhaba,
    Yazı için teşekkürler.
    Verdiğiniz çizim örneğinde dolap kümesi 10 + 70 = 80 oluyor ama dolap sayısı 50. Bu şekilde resmetmek hatalı gibi geldi.

    1. Rica ederim. Resim, evet, biraz karışık olmuş. Ancak 80 dolap adedi değil tam olarak dolabı olan 70 öğrenci ve 10 da boş dolabı süzmek içindir. Daha doğrusu bu 80 ilişki adedidir. Selamlar

      1. Küme gösterimi için ben de hatalı olduğunu düşünüyorum. Şekle göre dolap sayısı 80 oluyor. Ama anlatım olarak örnek çok açıklayıcı. Ellerinize sağlık, sevgiler.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s