SQL’de Join (Inner, Left, Right)

SQL de birbiri ile ilişkili tablolardan veri çekmek için JOIN komutlarını kullanırız. Join komutlarında en çok inner, left ve right join kullanılır.

Hızlıca bir örnekle başlayalım;

Kategoriler Tablosu

idkategori_adi
1SQL

Yazılar Tablosu

idbaslikicerikkategori_id
1SQL’de JoinSQL’de join dersi1

Şimdi burada yazıları kategori adıysa listelemek istersek;

INNER JOIN

SELECT * FROM yazilar as y INNER JOIN kategoriler as k ON y.kategori_id = k.id

Bu sorgunun çıktısı;

idbaslik kategori_adi
1SQL’de JoinSQL

Burada dikkat edilmesi gereken şey “ON” dan sonra eşitlediğimiz değerlerin var olması iki tabloda da bu değerlerin eşitlenmesi yani. Birinde varsa birinde yoksa eşitlik olmaz ve o değer gelmez.

LEFT JOIN

SELECT * FROM yazilar as y LEFT JOIN kategoriler as k ON y.kategori_id = k.id

Burdaki sorguda ise yazılar tablosunda kategori_id değeri 1 se kategoriler tablosunda idsi 1 kategori yoksa bile sonuç aşağıdaki gibi olur.

idbaslik kategori_adi
1SQL’de Joinnull

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.

idbaslik kategori_adi
1nullSQL

Tablolarda ilişki kurmak bana büyük kolaylık getiriyor. İlk başladığım zamanlar bir çok sorgu yapıyordum ama join’i keşfedince bırakamadım ve yıllardır kullanıyorum. Joinde en çok inner join kullanılıyor listeleme yapıldığında null sonuç gözükmemesi adına veriler eşleşiyorsa listelenmesi önceliklidir.

You may also like...