İçeriğe geç
parazade

INNER JOIN Nedir?

Yayın: · Son güncelleme:

INNER JOIN Nedir? Kısaca

INNER JOIN, SQL'de iki tablodaki satırlardan yalnızca belirtilen koşulda birbiriyle eşleşenleri getiren birleştirme türüdür. Eşi bulunmayan satırlar sonuca dahil edilmez.

INNER JOIN nedir?
İçindekiler
  1. INNER JOIN nedir?
  2. Örnek sorgu
  3. LEFT JOIN'den farkı ne?
  4. Nelere dikkat etmeli?

INNER JOIN nedir?

INNER JOIN, iki tablonun kesişimini veren birleştirme türüdür. ON ile belirtilen koşul her iki tarafta da sağlanıyorsa satır sonuca girer, sağlanmıyorsa dışarıda kalır. Kümeler üzerinden düşünürseniz iki dairenin ortak alanına karşılık gelir.

Bu, en sık kullanılan JOIN türüdür. Pek çok veritabanında yalnızca JOIN yazdığınızda da INNER JOIN çalışır.

Örnek sorgu

Varsayımsal bir kurs platformunda "ogrenciler" ve "kayitlar" adlı iki tablo olsun. En az bir kursa kayıtlı öğrencileri kurs adıyla birlikte listelemek için:

SELECT o.ad, k.kurs_adi
FROM ogrenciler o
INNER JOIN kayitlar k ON k.ogrenci_id = o.id;

Öğrenci tablosunda 120 kişi var ama bunlardan 30'u henüz hiçbir kursa kayıt olmamışsa, bu 30 kişi sonuçta görünmez. Bir öğrenci üç kursa kayıtlıysa sonuçta üç satır olarak yer alır.

LEFT JOIN'den farkı ne?

Fark, eşi olmayan satırlarda ortaya çıkar. INNER JOIN onları atar, LEFT JOIN ise soldaki tablonun tüm satırlarını tutar ve eşleşme yoksa sağ taraftaki sütunları boş (NULL) bırakır. "Hiç kursa kaydolmamış öğrencileri de görmek istiyorum" diyorsanız LEFT JOIN kullanmanız gerekir.

Nelere dikkat etmeli?

Rapor hazırlarken INNER JOIN fark ettirmeden satır kaybettirebilir. Örneğin satış raporunda bölge bilgisi eksik olan siparişler, bölge tablosuyla INNER JOIN yapıldığında toplamdan düşer ve ciro olduğundan düşük görünür. Birleştirmeden önce ve sonra satır sayılarını karşılaştırmak bu hatayı erkenden yakalar.

Sıkça Sorulan Sorular

INNER JOIN birden fazla koşulla yapılabilir mi?

Evet. ON ifadesinde AND ile birden fazla koşul yazılabilir; örneğin hem müşteri kimliği hem de yıl eşleştiğinde satırları birleştirmek mümkündür.

INNER JOIN performansı nasıl iyileştirilir?

Eşleştirmede kullanılan sütunlara indeks eklemek en etkili adımdır. Gereksiz sütunları SELECT'ten çıkarmak ve WHERE ile satırları erken süzmek de sorguyu hızlandırır.

İlgili terimler