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

id kategori_adi 1 SQL

Yazılar Tablosu

id baslik icerik kategori_id 1 SQL’de Join SQL’de join dersi 1

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

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

Bu sorgunun çıktısı;

id baslik kategori_adi 1 SQL’de Join SQL

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.

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.

id baslik kategori_adi 1 SQL’de Join null

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

id baslik kategori_adi 1 null SQL

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.