12. Join Tipleri

1.INNER JOIN

Innerin başına birşey yazmadığımızda default olarak gelen join tipidir. Bir üst başlıkta bulunan join konusu inner join için geçerlidir.

select * from [Order Details] inner join Product on [Order Details].ProductID = Products.ProductID

2.LEFT OUTER JOIN

Soldaki tablo baz alınarak sorgu çalıştırılır. Sağdakiyle eşleşen kayıtlar aynen yazılır. Eşleşmeyen ise NULL döndürür.

select * from [Order Details] left outer join Product on [Order Details].ProductID = Products.ProductID

Örnek kullanım senaryosu : Bölgeler ve çalışanlar adında iki tablomuz olduğunu varsayalım. Aralarındaki ilişkinin de bölgelere atanan çalışanlar olduğunu varsayalım. Ancak bazı bölgelere çalışan atanmamış olabilir. Bunu görmek istiyorsak , bölgeler tablosunu komple ekrana bastırmalı , eşleşen kısımlarını çalışanlar tablosuyla birleştirmeli, eşleşmeyen kısımları da null olarak göstermeliyiz. Bu durumda null olan çalışan tablosundaki kayıtlar çalışan atanmayan bölgeleri temsil edecektir.

select * from Bolgeler left outer join Calisanlar on Bolgeler.EmployeeID = Calısanlar.EmployeeID

3.RIGHT OUTER JOIN

Left outer joinin tersidir. Burada sağ tablo olduğu gibi yazılır. Sol tablo ile eşleştirilir ve eşleşmeyenler ise null olarak döner.

select * from [Order Details] right outer join Product on [Order Details].ProductID = Products.ProductID


4.FULL OUTER JOIN

Left outer ve right outer joinin birleşimidir.

select * from orders full outer join Shippers on orders.ShipVia = Shippers.ShipperID

5.SELF JOIN

Bazen tablodaki bir bilgi aynı tablo içerisinde başla bir bilgiye referans verebiliyor. Bu durumda tabloyu sergilememiz gerekirken kendi içerisinde referans gösterdiği bilgiyle birleştirip sunmamız gerekebiliyor. Bu gibi burumlarda self join kullanılır.

ÖZET BİLGİ

1. Join-İnner join : Sadece eşleşen kayıtlar üzerinden tablo ekrana gelir.
2. Left outer join  : Sol tablo olduğu gibi yazılır. Sağ tabloda eşleşmeyen kısımlar null olarak eşlenir.
3. Right outer join : Sağ tablo olduğu gibi yazılır. Sol tabloda eşleşmeyen kısımlar null olarak eşlenir.