Tarayıcınız JavaScript! desteklememektedir.

Inner Join Nedir? Nasil Kullanilir?

Herkese Merhaba, 

Bir önceki makalemde JOIN (Birlestirici) ifadesinden söz etmistik. Eger okumadiysaniz veya bu konu hakkinda bilginiz yok ise bu makaleden önce Iki Tabloyu Birlestirme - Join Kullanimi adli makalemi okumanizi tavsiye ederim. 

Bu makalemde ise 3 farkli JOIN ifadesinden bir tanesi olan Inner Join (Iç Birlestirici) ' i anlatacagim. 

Inner Join Nedir?  

Inner Join iki veya daha fazla tablo arasinda bulunan bir biri ile iliskili olan alanlari kontrol ederek bir sonuç tablosu olusturur. Ancak olusturdugu sonuç tablosunda iliskili olan alanlardan bir tanesinin içerigi "NULL"  ise bu kaydi sonuç tablosunda göstermez. Burda dikkat etmemiz gereken durumlardan bir tanesi de iliskili olan alanlarin veri tipinin ayni olmasidir.  

Inner Join Nasil Kullanilir? 

 Iki tabloyu birbirine baglamak için : 

Select t1.alanAdi, t2.alanAdi from tablo1 AS t1 Inner Join tablo2 AS t2 ON t1.iliskiliAlan = t2.iliskiliAlan 

Ikiden fazla tabloyu birbirine baglamak :

Select t1.alanAdi, t2.alanAdi,t3.alanAdi from tablo1 AS t1 Inner Join tablo2 AS t2 ON t1.iliskiliAlan = t2.iliskiliAlan Inner Join tablo3 AS t3 ON t1.iliskilAlan = t3.iliskiliAlan  

O halde birkaç örnek ile konuyu pekistirelim. 

1.Örnek 

Ilk örnegimizde sadece 2 adet tablo arasinda baglanti olusturalim. 

Bu örnegimizde Kullanicilarimizi tuttugumuz Kullanici tablomuz ve bu kullanicilara ait olan telefon numaralarini tuttugumuz Telefonlar tablomuz oldugunu düsünelim. Veri tabanimizda bulunan kullanicilarin telefon numaralarini görmek istiyoruz ancak telefon kullanmayan kullanicilarimizin sonuç tablosunda gözükmesini istemiyoruz. Iste bu durumda Inner Join ifadesini kullanarak bir SELECT sorgusu yazabiliriz. 

6 adet kullanici kaydimizin oldugu Kullanicilar tablomuz ve 8 adet telefon numarasi bulunan Telefonlar tablomuz var. Telefonlar tablomuzda bulunan Kullanici_ID alani Kullanicilar tablomuz ile iliskili olan alan ve her iki alanda int türünden. 

Sorgu : 

Select T.Telefon,K.Ad from Telefonlar AS T Inner Join Kullanicilar AS K ON T.Kullanici_ID = K.ID  

Sonuç :  

 

Sorgumuz sonucunda toplam 8 adet kayit geldi. Dikkat ettiyseniz Kullanici3 ve Kullanici5 kayitlari bir telefon numarasina sahip olmadigi için sonuç tablosunda yer almadi. 

2.Örnek 

Bu örnegimizde ise ikiden fazla tablo kullanarak bir sorgu yazalim 

Bu sefer Kullanicilar ve Telefonlar tablomuzu kullandigimiz sorgumuza birde Mailler tablomuzu ekleyelim ve bu sorgumuzda 3 adet tabloyu bir biri ile baglayalim baglayalim. 

Sorgumuza dahil ettigimiz Mailler tablomuzda toplam 6 adet kayit bulunmaktadir. Ayni Telefonlar tablomuzda oldugu gibi bu tablomuzda da Kullanici_ID alani int türünden olup Kullanicilar tablosu ile iliskili olan alanimizdir. 

 

 Sorgu : 

Select T.Telefon,K.Ad,M.mail from Telefonlar AS T Inner Join Kullanicilar AS K ON T.Kullanici_ID = K.ID Inner Join Mailler AS M ON K.ID = M.Kullanici_ID 

Sonuç : 

 

Bu sorgumuz sonucunda ise toplam 5 adet kayit gösterildi. Dikkat ettiyseniz telefon numarasi veya mail adresinden sadece 1 tanesine sahip olan kullanicilar sonuç tablosunda yer almadi. Sonuç tablosunda bulunan sonuçlarin hepsi en az 1 tane telefon numarasi ve mail adresine sahip olan kullanicilardir.