Beyaz.Net İpucu

SQL'de JOIN (INNER JOIN, LEFT JOIN, RIGHT JOIN ) Kullanımı

SQL de birbiri ile ilişkili tablolardan veri çekmek için JOIN komutlarını kullanırız.

INNER JOIN, LEFT JOIN, RIGHT JOIN komutları en sık kullanılan komutlardır.

Şimdi bunları örnekleyerek inceleyelim.

kitaplar:

 id kitap_isim  yil  sayfa  fiyat  yazarid  yayineviid
 1  saklı ev  1995  255  20  1  2
 2  son moda  2002  652  25  null  2
 3  gelecek  2007  214  12  2  1
 4  bir umut  2008  421  18  3  1


yazarlar:

 id  yazar_isim  soyisim  yas
 1  ekrem  sever  28
 2  orhan  erdem  24
 3  orhan  karasu  34
 4  isa  bereket  43


Görüldüğü üzere kitaplar tablomuzdaki yazar id, yazarlar tablomuzdaki id ile ilişkilendirilmiş.

INNER JOIN

Bu iki tablodaki verileri birleştirerek bize cevabı döndürür.

SELECT kitaplar.kitap_isim, yazarlar.yas
FROM kitaplar
INNER JOIN yazarlar ON kitaplar.yazarid = yazarlar.id

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

kitap_isim yas
saklı ev 28
gelecek 34
bir umut 43

 

Görüldüğü gibi dönen listede son moda adlı kitap bulunmamaktadır. Sebebi ise kitaplar tablosundaki yazarid alanında null değerinin olmasıdır. INNER JOIN iki tablodaki sadece birleşme şartını sağlayan verileri döndürür.

LEFT JOIN

İki tabloyu birleştirmenin ikinci yolu ise “LEFT JOIN” kullanmaktır.

Aşağıdaki sql cümlesini ele alalım:

SELECT kitaplar.kitap_isim, yazarlar.yazar_isim
FROM kitaplar
LEFT JOIN yazarlar ON yazarlar.id = kitaplar.yazarid


Bu kodun da cevabı şu olacaktır:

kitap_isim yazar_isim
saklı ev ekrem
son moda null
gelecek orhan
bir umut orhan


LEFT JOIN soldaki tablonun tamamını alır ve diğer tablodaki ilişkili verileri döndürür.

RIGHT JOIN

LEFT JOIN ile RIGHT JOIN hemen hemen aynıdırlar, RIGHT JOIN cümlesinin yaptığı iş sadece sağdaki tablonun tamamını almaktır.

Aşağıdaki sql cümlesini ele alalım:

SELECT kitaplar.kitap_isim, yazarlar.yazar_isim
FROM kitaplar
RIGHT JOIN yazarlar ON yazarlar.id = kitaplar.yazarid

Bu sql cümlesinin cevabı ise:

kitap_isim yazar_isim
saklı ev ekrem
son moda orhan
gelecek orhan
bir umut orhan
NULL isa

 

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ğeri 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 rastlanır.

Kategorideki Güncel Makaleler