Inner Join vs Outer Join
İç birleşim ve Dış birleşim, veritabanları için sorgu işlemede kullanılan SQL birleştirme yöntemlerinden ikisidir. Birleştirme yan tümceleri ailesine aittirler (diğer ikisi Sol ve Sağ Birleştirme'dir). Ancak, özel durumlar için kullanılabilecek bir Kendi Kendine Katılma vardır. Join'in amacı, iki tablodaki ortak değerleri kullanarak alanları birleştirmektir. Bu birleştirmeler, bir veritabanındaki birden çok tablodaki kayıtları birleştirir. Başka bir tablo olarak kaydedilebilecek sonuç kümeleri oluşturur.
Inner Join nedir?
En sık kullanılan SQL Birleştirme işlemi, İç Birleştirmedir. Uygulamalarda kullanılan varsayılan birleştirme türü olarak kabul edilebilir. İç birleştirme, iki tabloyu birleştirmek için birleştirme yüklemini kullanır. İki tablonun A ve B olduğunu varsayarsak, birleştirme yüklemi, yüklemi karşılayan tüm çiftleri bulmak için A ve B satırlarını karşılaştıracaktır. A ve B tablolarının tüm memnun satırlarının sütun değerleri, sonucu oluşturmak için birleştirilir. İlk önce tüm kayıtların çapraz birleşimini (Kartezyen çarpımı) alıp, ardından yalnızca birleştirme yüklemini karşılayan kayıtları döndürmek olarak görülebilir. Ancak gerçekte, Kartezyen çarpım çok verimsiz olduğu için hesaplanmaz. Bunun yerine karma birleştirme veya sıralama birleştirme birleştirme kullanılır.
Outer Join nedir?
Farklı olarak, İç birleştirme, dış birleştirme, eşleşen bir kayıt bulamasa bile tüm kayıtları tutar. Bu, sonuçta görünmesi için dış birleştirmenin eşleşen bir kayıt bulması için bir kayda ihtiyacı olduğu anlamına gelir. Bunun yerine, tüm kayıtları döndürür, ancak eşleşmeyen kayıtlar boş değerlere sahip olur. Dış birleşimler üç alt kategoriye ayrılır. Bunlar sol dış birleşim, sağ dış birleşim ve tam dış birleşimdir. Bu ayrım, eşleşmeyen kayıtlar bulunduğunda hangi tablonun (sol tablo, sağ tablo veya her iki tablo) satırının tutulduğuna bağlıdır. Sol dış birleşimler (sadece sol birleşim olarak da bilinir), sol tablonun tüm kayıtlarını tutar. Bu, eşleşen kayıtların sayısı sıfır olsa bile, sonuç tablosunda hala kayıtları olacak, ancak B'nin tüm sütunları için boş değerlere sahip olacağı anlamına gelir. Başka bir deyişle, soldaki tablodaki tüm değerler, sağdan eşleşen değerlerle döndürülür. tablo (veya eşleşmediğinde boş değerler). Sol tablodaki birden çok satırdaki değerler, sağdaki tablodaki tek satır ile eşleştirilirse, sağdaki tablodaki satır gerektiği kadar tekrarlanır. Sağ dış birleşim, sol dış birleşime oldukça benzer, ancak tabloların işlenmesine saygı duyulur. Bu, sonucun en az bir kez eşleşen sol tablo değerleriyle (ve eşleşmeyen sağ değerler için boş değerlerle) sağ tablonun tüm satırlarına sahip olacağı anlamına gelir. Tam dış birleşim, hem sol hem de sağ dış birleşimlerden daha kapsamlıdır. Hem sol hem de sağ dış birleştirilmiş uygulamanın etkisinin birleştirilmesiyle sonuçlanır.
Inner Join ve Outer Join arasındaki fark nedir?
Inner Join sonuçtaki eşleşmeyen satırları tutmaz, ancak dış birleşim en az bir tablodaki tüm kayıtları tutar (hangi dış birleştirmenin kullanıldığına bağlı olarak). Bu nedenle, sonuç tablosundaki eşleşmeyen satırlarda hiçbir bilginin bulunmaması davranışı istenmeyen bir durumdur, her zaman dış birleşimlerden birini (iç birleştirme yerine) kullanmanız gerekir. Hiçbir eşleşme bulunmazsa, iç birleştirme sonuç vermeyebilir. Ancak dış birleştirme, eşleşen satırlar olmasa bile her zaman bir sonuç tablosu üretecektir. İç birleşim her zaman değerler içeren tablolar döndürür (döndürüldüyse). Ancak dış birleşimler boş değerlere sahip tablolarla sonuçlanabilir.