SQL üzerinde bugüne kadar hep tek tablo üzerinden sorgu yapıp sonuçlarını görmüştük. Artık biraz daha ayrıntı düşünerek “profesyonelleşmek” adına bir adım daha atmamız gerekiyor. Bu yazımızda birbiri ile ilişkili iki farklı tablodan tek sorgu ile veri çekmeyi göstereceğiz. Daha önceden tek tablodan veri alıyorduk bu tek sorgu, iki tablo verisi olarak göstereceğiz. Peki bunu nasıl yapacağız? SQL üzerinde Join komutunu kullanarak bunu gerçekleştirebiliyoruz. Aşağıdaki resimlerde iki farklı tabloyu görüyorsunuz ve id ‘leri birbirleri ile ilişkilendirilmiş şekildedir. İlişkilendirmeyi bilmeyenler için daha önceden yazmış olduğumuz Normalizasyon konusuna giderek bilgi alabilirsiniz.

Görmüş olduğunuz diyagramda Kitap tablosu ile Yazar tablosu arasında ilişkilendirme yaptık. Tablolar arasında ID’ler üzerinde ilişkilendirilme yapıldı. Çünkü bir kitabın tek bir yazarı olabilir fakat bir yazar birden fazla kitap yazabilir. İlişkilendirmeler ile ilgili ayrıntılı anlatımı burada anlattık.

Tablolarımızın verileri resimlerde olduğu gibidir. Gelelim Join komutunu kullanarak iki tablodan da veri çekmeyi nasıl yazacağımızı gösterelim.

select
kitap.kitap_isim as "Kitap İsmi",
yazar.Yazar_Isim as "Yazar İsmi"
from Kitap
join yazar
on Yazar.ID = kitap.yazar_ID

İlk olarak Kitaplar tablosundan kitap_ismi çekeceğimiz için öncelikle hangi tablodan seçeceğimizi belirtmek için tablonun_ismi.kolon_ismi şeklinde yazıyoruz. Daha sonra as “başlık” kısmı ile kolon başlığını belirttik. Aynı işlemi yazarlar için de yaptık. Ve bu işlemi yaparken ilişkilendirilmiş ID’ler üzerinden yaptık. İki tablodan veri çekerken join komutunu kullanmazsak select kısmında yazmış olduğumuz iki tablodan birisinde hata alırsınız. Bu yüzden join ile birlikte diğer tablomuzu da sorguya dahil ediyoruz ve karşımıza böyle bir sonuç çıkıyor.

Üstteki tablolarımızdan da kontorlünü sağladığımızda Ali baba adlı kitabın yazar_ID ‘si 2 olduğunu görüyoruz. Yazarlar tablomuzda ID’si 2 olan yazarımız Ali gözüküyor. Sağlamasını da yaptıktan sonra yazmış olduğumuz kod satırının düzgün çalıştığını onaylamış oluyoruz.

Bizi Facebook ve Instagram üzerinden takip etmeyi unutmayın.