Merhaba sevgili okuyucu, bugün SQL’in o meşhur JOIN işlemlerine dalacağız. Hani şu veri tabanlarında tabloları birbirine bağlayan, sanki bir yapboz gibi parçaları birleştiren sihirli dokunuşlar var ya, işte onlardan bahsedeceğiz. Özellikle de INNER, LEFT, RIGHT ve FULL JOIN’in inceliklerini, nerelerde ne kullanmamız gerektiğini, hatta bazen neden kullanmamamız gerektiğini konuşacağız. Açıkçası bu konuyu ilk öğrendiğim zamanlar, sanki bir dil öğreniyormuşum gibi gelmişti. Ama zamanla oturdu, yerine oturdu yani. Hadi bakalım, ne kadar basitmiş aslında:
JOIN İşlemleri: INNER, LEFT, RIGHT, FULL
Şimdi önümüzde iki tane tablo var diyelim. Biri ‘Musteriler’, diğeri de ‘Siparisler’. Musteriler tablosunda her bir müşterinin bilgisi var, kimlik numarası, adı, soyadı gibi. Siparisler tablosunda ise hangi müşterinin hangi ürünü ne zaman aldığına dair kayıtlar var. E haliyle, bir müşterinin verdiği tüm siparişleri görmek istediğimizde ya da hangi müşterinin hiç sipariş vermediğini anlamak istediğimizde bu JOIN’ler devreye giriyor.
İlk olarak en bilineniyle başlayalım: INNER JOIN. Bu, tam olarak istediğimiz şeyleri bize veren bir tür. Yani, hem ‘Musteriler’ tablosunda olan hem de ‘Siparisler’ tablosunda karşılığı olan kayıtları getiriyor. Düşünsenize, sadece sipariş vermiş müşterileri görmek istiyorsunuz. İşte INNER JOIN tam olarak bunu yapıyor. Eğer bir müşteri hiç sipariş vermemişse, o müşteri INNER JOIN sonucu karşımıza çıkmaz. Çünkü adı her iki tabloda da yok.
Peki ya hiç sipariş vermemiş müşterileri görmek istersek ne olacak? İşte tam burada LEFT JOIN imdadımıza yetişiyor. LEFT JOIN’i kullandığınızda, sol tablodaki (yani bizim örneğimizde ‘Musteriler’) tüm kayıtları getirir. Sağ tabloda (‘Siparisler’) karşılığı olanlar da gelir ama karşılığı olmayanlar için sağ tablodaki sütunlar boş (NULL) olarak görünür. Bu da bize “