SQL Inner Join Kullanımı
SQL'de veritabanı işlemleri yaparaken iki veya daha fazla tablodan veri çekmemiz gerekebilir. Tabloların arasındaki ilişkiye dayanarak bu tablolardan veri çekme işlemini yapabilmek için SQL komutu olan Inner Join komutunu kullanırız. Veritabanında tablo birleştirme yöntemlerinde en çok kullanılan komut Inner Join'dir.
Aşağıda Kategori ve Makale adında iki adet tablo oluşturdum. Tablonun içinde oluşturduğum Id değerlerine birincil anahtar (Primary Key) özelliğini tanımlayıp eşsiz bir değer oluşturdum. Inner Join işlemini yaparken bir tablodan başka bir tablonun birincil anahtar alanını referans gösteren alanlara yabancı anahtar (Foreign Key) diyoruz.
İki tablo arasındaki ilişkiyi kurabilmek için Makale tablosuna KategoriId değerini atadım. Böylece Inner Join komutuyla iki taboyu birleştirmiş olacağım.
Aşağıda Kategori tablosu içinde kullanacağım alanları KategoriId ve KategoriAd olarak tanımladım.
KategoriId |
KategoriAd |
1 |
MS SQL |
2 |
ASP.NET |
3 |
JQUERY |
4 |
CSS |
Aşağıda Makale tablosu içinde kullanacağım alanları MakaleId, MakaleAd ve KategoriId olarak tanımladım.
MakaleId |
MakaleAd |
KategoriId |
1 |
SQL Select Komutu |
1 |
2 |
CSS Kullanımı |
4 |
3 |
JQuery Kullanımı |
3 |
4 |
Asp.Net DataTable |
2 |
Inner Join komutunu kullanarak yukarıda oluşturduğumuz "Kategori" ve "Makale" tablolarını birleştirelim.
SELECT * FROM Kategoriler k INNER JOIN Makaleler m ON m.KategoriId = k.KategoriId
Yukarıda oluşturduğumuz Inner Join komutunu kullanarak bir Select sorugusu yazdık. Yazdığımız bu Select sorgusunun sonucu tablodaki gibidir.
KategoriId |
KategoriAd |
MakaleId |
MakaleAd |
KategoriId |
1 |
MS SQL |
1 |
SQL Select Komutu |
1 |
2 |
ASP.NET |
4 |
Asp.Ner DataTable |
2 |
3 |
JQUERY |
3 |
JQuery Kullanımı |
3 |
4 |
CSS |
2 |
CSS Kullanımı |
4 |
Inner Join komutunu kullanarak istediğimiz alanları listelemek istersek bu seferki Select sorgumuz aşağıdaki gibi olmalıdır.
SELECT k.KategoriAd, m.MakaleAd FROM Kategoriler k INNER JOIN Makaleler m ON m.KategoriId = k.KategoriId
Yukarıda oluşturduğumuz Inner Join komutunu kullanarak bu sefer tabloda görünmesini istediğimiz alanları listeledik. Yazdığımız bu Select sorgusunun sonucu tablodaki gibidir.
KategoriAd |
MakaleAd |
MS SQL |
SQL Select Komutu |
ASP.NET |
Asp.Ner DataTable |
JQUERY |
JQuery Kullanımı |
CSS |
CSS Kullanımı |