Sql Join Sorguları Oluşturma

Sql Server 2008Sql yazı dizimizde sıra , bir çok kez ihtiyacımız olan birden fazla tablo üzerinde çalışma durumudur.Veri tabanı sistemlerinde tutulan veriler tek bir tablo üzerinde değil ; normalizasyon kurallarına göre çeşitli tablolar üzerinde tutulur.Bunun sebebi ilişkisel veri tabanı mantığı üzerinden sağlıklı veri modelleri oluşturmaktır.Sql üzerinde birden fazla tablo için belirli sorgu kalıpları kullanılır.Yine iş senaryomuz üzerinde temel mantıkları oturtmaya çalışalım.

Veri tabanımızda  "personel" ve "bolumler" isimli iki adet tablo olsun."bolumler" isimli tablomuzda iki adet sütun bulunsun.Bunlar : "bolum_adi" ve "bolum_id" olsun.

"personel" tablosunda 500 kayıt gibi bir sayı olduğunu düşünürsek ; her bir personel için "bolum_adi"  gibi bir değer tutulması yerine "bolum_id" gibi bir değer tutmak kaynak kullanımı açısından daha mantıklı bir yöntem olacaktır.Ancak personel verilerini listelerken kullanıcılar karşılarında bir sayı görmeyi elbette ki istemeyecektir.Bu durumda iki tablo üzerinde öyle bir ilişki kurabilmeliyiz ki "personel" tablosu  üzerinde olmayan bir alanı sorgu ile dinamik şekilde gösterebilmeliyiz.

NASIL ?

Select personel.personel_adi,personel.personel_soyadi,
bolumler.bolum_adi//seçmek istediğimiz sütun isimlerini
from personel , bolumler
//tablo isimleri
where personel.bolum_id=bolumler.bolum_id
//birleştirme işlemi ortak sütuna göre gerçekleşiyor

Yukarıdaki kod sayesinde iki tablo üzerindeki ortak alanlara dayanarak birleştime işlemini yaptık.Yukarıdaki kod ile gerçekleştirilen işlemi join sorgularıyla da gerçekleştirmemiz mümkündür.

INNER JOIN -->İki tablo üzerinde ortak alan eşitliğine dayalı birleştirme işlemi yapar.

 
Select personel.personel_adi,personel.personel_soyadi,
bolumler.bolum_adi 
from personel inner join bolumler//tablo isimleri.. 
on personel.bolum_id=bolumler.bolum_id//ortak sütuna göre

 Sql Server üzerinde çalışan ekran görüntümüz ==>
 

 

Inner join dışında , left outer ve right outer join çeşitleri de bulunmaktadır ; ancak en gerekli birleştirme çeşidi inner join yöntemidir. Yeni bir paylaşımda buluşmak dileğiyle..

Benzer Makaleler

Programciyim.com
Mart 2, 2010, 8:01 pm
Programciyim.com
Mart 2, 2010, 12:32 pm
Programciyim.com
Ocak 2, 2010, 5:04 pm