22 Temmuz 2015 Çarşamba

Mysql 'de "Join" Kullanımı

Join Nedir ?

Join; birbiriyle alakalı olan iki veya daha fazla tablolardan tek seferde veri çekme, filtreleme, sıralama işlemine yaramaktadır.
 adından da anlaşılacağı gibi tabloları bizim belirlediğimiz koşullarda birleştirmeye yarar 
Joinler 4  gruptan oluşur  bunlar ;
  1. Inner Join
  2. Left Join
  3. Right Join
  4. Full Join 

INNER JOIN
Birden fazla tabloda birebir eşleşen kayıtları getirmemizi sağlar.En yaygın kullanılan JOIN tipi İNNER JOİN dir.INNER JOIN, ilişkilendirildiği diğer tabloyla bire bir bütünlük sağlayarak sonuç döner. Yani INNER JOIN’inde belirtilen ON koşulundaki kolonun her iki tabloda da eşitlik sağlaması kesinliği esasına dayanır.

Elimizde örnek olarak şu 2 tablonun bulunduğunu varsayalım:
    kitaplar tablomuz :
  
Bir kitabın yazarının yaşını öğrenmek istiyoruz. Bu durumda joinleri kullanmalıyız
SELECT kitaplar.kitap_isim,yazarlar.yas
FROM kitaplar
INNER JOIN yazarlar ON kitaplar.id=yazarlar.id

bu kodun bize cevabı şu tablo olacaktır:



Yaptığımız şey, çok basit, “select * from” derken yıldız yerine bize geri dönülmesini istediğimiz alanları yazıyoruz, bunu yazarken kuralımız ise; “tabloismi.alanismi” önce tablo ismini yazıyoruz sonra nokta, sonra alanismi. Biz burada iki tane alan belirledik. Ardından birinci tablomuzu yazıyoruz, sonra “INNER JOIN yazarlar” diyoruz. (hangi tablo ismini önce yazdığımız, inner join kullanırken farketmiyor.) Ardından iki tablonun birleşme şartını belirtiyoruz: “ON yazarlar.id = kitaplar.yazarid” Sonuç olarak bize kitap isimleri ve yazarının yaşı geri dönmüş oluyor.

LEFT JOIN

İki tabloyu birleştirmenin ikinci yolu ise “LEFT JOIN” kullanmakdır.
 Asagıda kı kodu yazarsak 
sonucumuz bu sekılde olur

left join, soldaki tablonun tamamını alır. Bu sql cümlesinde “kitaplar LEFT JOIN yazarlar” kitaplar soldaki tablo ve bu tablonun tamamı sonuç tablosunda yer alır. Şu anki sql cümlemizde bu bir sakınca yaratmadı ancak yazarı olmayan bir kitap olsaydı, yazar sütununda “null” yazacaktı. 

RIGHT JOIN 

Left join ile right join hemen hemen aynıdırlar, right join cümlesinin yaptığı iş sadece sağdaki tablonun tamamını almak.


 kodumuzun sonucunda asagıda kı tabloyu elde ederiz.

Görüldüğü gibi sağda yer alan yazarlar tablosunun tamamını sonuç olarak aldı ve yazara karşılık gelen bir kitap bulunmadıysa ilgili alanın değerini “null” olarak atadı.


İlişkili veritabanlarında “join” cümleleri çok işe yarar, ve genellikle “inner join” pek çok kez kullanılır. Left join ile right join birbirlerine benzerler, sadece biri soldaki, diğer sağdaki tablonun tamamını alır ve yukarıdaki örnekte olduğu gibi, eğer ilgili yazarın her hangi bir kitabı yoksa, geri döndürdüğü değerlerde “null” kelimesine rastlanabilir.

FULL JOIN
Full join Left Join ve Right Join birlikte kullanılarak  yada sadece join olarak sorgu yazdığımızda iki tablonun birleşimini bize verir.

Hiç yorum yok:

Yorum Gönder