Merhaba arkadaşlar bu yazımda sizlere JOIN kullanımı yani İlişkili Tablolar ile nasıl işlem yapabileceğinizden bahsedeceğim.

İlişkili tabloların ne olduğunu açıklamak gerekirse misal bir tablomuz olsun blog yazılarımızı tutan sütunları id, baslik, icerik, kategory_id olsun. Bir de kategori adında bir tablomuz olsun bu tablodada id ve kategori_ad isimli 2 adet sütun olsun biz blog yazılarında kategori adlarını çekerken 2 adet sorgu çalıştırmaktansa tek bir sorgu ile bu işlemi yapabilmemizi JOIN kullanarak yapabiliyoruz. Buradaki blog ve kategori tabloları ise ilişkili tablolar oluyor.

Şimdi yukarıda anlattığım örnek üzerinden bunları açıklamaya başlayalım ama öncelikle kategori ve blog tablolarımızın içerikleri neler bunlardan bahsetmek gerekiyor.

blog isimli tablo
category isimli tablo

Şimdi biz burada blog tablosunda ki id değerlerini category tablosunda ki id değerleri ile eşleştirip kategori isimlerini tek bir sorgu yazarak öğrenmek istiyoruz. Yazmamız gereken sorgu şu şekilde olmalı.

SELECT * FROM blog INNER JOIN category ON blog.category_id = category.id

şeklindeki sorgumuzu çalıştırırsak karşımıza şöyle bir sonuç çıkıyor olucak.

şimdi bu görüntü güzel ama ben biraz daha düzenli hale getirmek istiyorum misal burada gözüken id değerlerini kaldıralım ve category_id yerine direkt kategorinin ismi gözüksün bunu nasıl yaparız diyorsanız.

SELECT * FROM cümlesindeki * yerine isteklerimizi yazmamız gerekiyor yani

SELECT blog.title, blog.content, category.cat_name FROM blog INNER JOIN category ON blog.category_id = category.id;

Burada anlatmam gereken bir nokta var blog.title, blog.content ve ya category.cat_name neyi temsil ediyor derseniz şöyle anlatabilirim.

Bu kelimeleri noktadan itibaren ayırın solda kalan kısım tablonun adı sağda kalan kısım ise o tabloya ait olan sütundur yani blog.title yazınca blog tablosundaki title sütununu temsil etmektedir. Bu genel bir kullanımdır ama tek bir tablo üzerinde çalışırken böyle uzun uzun yazmaya gerek olmadığı için kullanmayız ama JOIN kullanırken çok işimize yarayacak bir işlemdir. JOIN işlemi sadece INNER JOIN’den ibaret olmamakla beraber aşağıya ekleyeceğim resim ile diğer JOIN türlerini ve neyi temsil ettiklerini anlayacaksınız.

Özet,

Bu yazımda INNER JOIN kullanımı konusunu açıklayarak genel JOIN kullanımından bahsettim. İlişkisel tabloların ne olduklarını nasıl bir ilişkileri olduğunu açıkladım.

Bir sonraki yazımda SUM(), MIN(), MAX() gibi kavramları açıklayacağım. O zamana kadar MySQL hakkında yazmış olduğum diğer konuları merak ediyorsanız buraya tıklayınız.