Merhabalar ,
incelediğim bir CDS yapısında left outer to one join ifadesi ile karşılaştım. Aradığımda ise aynı şekilde left outer to many join ifadesinin de bulunduğunu gördüm.
Normal left outer join ile arasındaki farklar nelerdir ? Yardımcı olabilir misiniz? Cevaplarınız için şimdiden teşekkür ederim .
Saygılarımla.
Daha önceki tablo birleştirme yazılarımda INNER JOIN’den bahsetmiştim. INNER JOIN ile iki tabloyu birleştirirken iki tablo arasında mutlaka tam bir eşleşme olması gerekmektedir. Ancak bazen öyle durumlar olur ki, iki tablo arasında birleştirme yapmamız gerekirken aynı zamanda bu tablolardan birindeki verilerin hepsinin de listelenmesini isteriz.
Örneğin bir e-ticaret sitesinde müşteriler ve aldıkları ürünlerini listelemek istediğimizi bununla birlikte henüz hiç alışveriş yapmayan müşterileri de listelemek istediğimizi varsayalım. İşte bu gibi durumlarda OUTER JOIN kullanmamız gerekiyor.
Böylelikle hem müşteriler tablosu ile aldıkları ürünleri siparişler tablosundan eşleştirerek listeleriz hemde müşteriler içinden henüz sipariş vermeyenleri de listeleme imkanına kavuşuruz.
OUTER JOIN kullanımı kendi içinde iki şekilde kullanılmaktadır. LEFT OUTER JOIN ve RIGHT OUTER JOIN.
LEFT OUTER JOIN: OUTER JOIN kullanırken mutlaka LEFT ya da RIGHT özelliklerinden hangisinin kullanılacağını belirtmemiz gerekiyor.
Peki nedir bu LEFT ve RIGHT?
Eğer birleştirdiğimiz iki tablo içinde tüm satırlarını göstermek istediğimiz ana tabloyu sorgumuzda sol tarafta yazıyorsak mutlaka LEFT OUTER JOIN kullanmamız gerekir. Örneğin aşağıdaki şekilde Sales.Customer ve Sales.SalesOrderHeader tablolarını LEFT OUTER JOIN ile birleştirdiğimiz de Sales.Customer tablosundaki tüm müşterilerin herhangi bir sipariş yapsalarda yapmasalar da listelenmesini sağlayacak birleştirme metodudur. Şekilde görülen gri alanda yer alan veriler bu sorguda listeleneceklerdir.
Yani Sales.Customer tablosunun tamamı ile Sales.Customer ve Sales.SalesOrderHeader tablolarının kesiştiği noktalar sorgumuzda listelenirler.
Soruya Gelirsek,
Left outer to one join - left outer to many join arasında şu kurguyu düşünebilirsiniz.
Sadece bir işlem gören - birden fazla işlem gören (İşlem kelimesi prosese göre tanım değiştirir)