SQL JOIN İşlemleri: Veritabanlarında Tablo Birleştirme Rehberi (2026)

SQL JOIN İşlemleri: Veritabanlarında Tablo Birleştirme Rehberi (2026)

SQL JOIN İşlemleri: Veritabanlarında Tablo Birleştirme Rehberi (2026)

SQL JOIN, ilişkisel veritabanlarında en güçlü ve en sık kullanılan yapı taşlarından biridir. Tek bir tabloyla sınırlı kalmayıp, birden fazla tablodan anlamlı verileri bir araya getirmenizi sağlar. Eğer SQL öğrenme yolculuğunuzda "SQL Veritabanlarıyla Çalışma" ve "Gruplama ve Agregat Fonksiyonları" arasında bir köprü kurmak istiyorsanız, JOIN konusu tam da bu noktada devreye girer.

Bu rehberde, INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN, SELF JOIN ve CROSS JOIN türlerini gerçek dünya senaryolarıyla öğreneceksiniz.

SQL JOIN Nedir ve Neden Gerekli?

Veritabanı tasarımında veriler genellikle normalizasyon kurallarına göre birden fazla tabloya bölünür. Örneğin, bir e-ticaret sisteminde müşteri bilgileri Customers tablosunda, siparişler Orders tablosunda tutulur. Bu tabloları birbirine bağlayan ortak bir sütun (genellikle birincil anahtar / yabancı anahtar ilişkisi) vardır. JOIN işlemi, bu ilişkiyi kullanarak tabloları birleştirir ve tek bir sorguda çok daha zengin sonuçlar elde etmenizi sağlar.

Temel JOIN Sözdizimi:
SELECT tablo1.sütun, tablo2.sütun
FROM tablo1
JOIN_TÜRÜ tablo2
ON tablo1.ortak_sütun = tablo2.ortak_sütun;

1. INNER JOIN (İç Birleştirme)

INNER JOIN, her iki tabloda da eşleşen kayıtları döndürür. Eşleşme olmayan satırlar sonuç kümesine dahil edilmez. Bu, en yaygın kullanılan JOIN türüdür.

INNER JOIN Örneği

Employees (Çalışanlar) ve Departments (Departmanlar) tablolarını düşünelim:

Employees Tablosu:

id name dept_id
1Ava10
2Ben20
3CaraNULL

Departments Tablosu:

dept_id dept_name
10Satış
20Mühendislik
30Destek
SELECT e.name, d.dept_name
FROM Employees e
INNER JOIN Departments d
ON e.dept_id = d.dept_id;

Sonuç:

name dept_name
AvaSatış
BenMühendislik
Not: Cara listeye dahil edilmedi çünkü dept_id değeri NULL ve eşleşen bir departman yok. Destek departmanı da dahil edilmedi çünkü o departmanda çalışan yok.

Kullanım Alanları:

  • Sipariş veren müşterileri listeleme
  • Çalışanların departman bilgilerini getirme
  • Satılan ürünlerin kategori detaylarını görme

2. LEFT JOIN (Sol Dış Birleştirme)

LEFT JOIN (veya LEFT OUTER JOIN), sol tablodaki tüm kayıtları döndürür. Sağ tabloda eşleşme varsa getirir, yoksa ilgili sütunlar NULL olarak gelir.

LEFT JOIN Örneği

SELECT e.name, d.dept_name
FROM Employees e
LEFT JOIN Departments d
ON e.dept_id = d.dept_id;

Sonuç:

name dept_name
AvaSatış
BenMühendislik
CaraNULL
Önemli Kullanım: LEFT JOIN ile sağ tabloda eşleşmeyen kayıtları bulabilirsiniz. Örneğin, hiç sipariş vermemiş müşteriler:
SELECT c.CustomerName
FROM Customers c
LEFT JOIN Orders o
ON c.CustomerID = o.CustomerID
WHERE o.OrderID IS NULL;

3. RIGHT JOIN (Sağ Dış Birleştirme)

RIGHT JOIN, sağ tablodaki tüm kayıtları döndürür ve sol tablodan eşleşenleri getirir. Eşleşme yoksa sol tablo sütunları NULL olur.

RIGHT JOIN Örneği

SELECT e.name, d.dept_name
FROM Employees e
RIGHT JOIN Departments d
ON e.dept_id = d.dept_id;

Sonuç:

name dept_name
AvaSatış
BenMühendislik
NULLDestek
Pratik İpucu: Birçok geliştirici RIGHT JOIN yerine tablo sırasını değiştirip LEFT JOIN kullanmayı tercih eder. Bu, kodun okunabilirliği ve tutarlılığı açısından daha iyidir.

4. FULL JOIN (Tam Dış Birleştirme)

FULL JOIN (veya FULL OUTER JOIN), her iki tablodaki tüm kayıtları döndürür. Eşleşme varsa birlikte getirir, eşleşme yoksa eksik taraf NULL olur.

SELECT e.name, d.dept_name
FROM Employees e
FULL JOIN Departments d
ON e.dept_id = d.dept_id;

Sonuç:

name dept_name
AvaSatış
BenMühendislik
CaraNULL
NULLDestek

5. SELF JOIN (Kendi Kendine Birleştirme)

SELF JOIN, bir tablonun kendisiyle birleştirilmesidir. Aslında bir JOIN türünden ziyade, aynı tabloyu iki farklı takma isim (alias) kullanarak birleştirme tekniğidir. Hiyerarşik yapılar için idealdir.

SELF JOIN Örneği: Çalışan-Yönetici İlişkisi

Employees Tablosu:

EmployeeID EmployeeName ManagerID
1AhmetNULL
2Ayşe1
3Mehmet1
4Zeynep2
SELECT 
    e.EmployeeName AS Calisan,
    m.EmployeeName AS Yonetici
FROM Employees e
LEFT JOIN Employees m
ON e.ManagerID = m.EmployeeID;

Sonuç:

Calisan Yonetici
AhmetNULL
AyşeAhmet
MehmetAhmet
ZeynepAyşe

6. CROSS JOIN (Çapraz Birleştirme)

CROSS JOIN, iki tablonun Kartezyen çarpımını döndürür. Yani sol tablodaki her satır, sağ tablodaki her satırla eşleştirilir.

SELECT e.name, d.dept_name
FROM Employees e
CROSS JOIN Departments d;

3 çalışan × 3 departman = 9 satır sonuç döner.

Eski Sözdizimi Uyarısı: Virgülle ayrılmış tablo listesi (FROM tablo1, tablo2) CROSS JOIN ile aynıdır ancak okunabilirlik açısından explicit CROSS JOIN syntax tercih edilmelidir.

JOIN Türleri Karşılaştırma Tablosu

JOIN Türü Sol Tablo Sağ Tablo Eşleşmeyen Satırlar
INNER JOIN Eşleşenler Eşleşenler Dahil edilmez
LEFT JOIN Tümü Eşleşenler Sol tablo dahil, sağ NULL
RIGHT JOIN Eşleşenler Tümü Sağ tablo dahil, sol NULL
FULL JOIN Tümü Tümü Eksik taraf NULL
CROSS JOIN Tümü Tümü Kombinasyon (Kartezyen)

JOIN ve WHERE / GROUP BY Kombinasyonu

JOIN'ler tek başına kullanılmaz, genellikle filtreleme ve gruplama ile birlikte:

-- Her departmandaki çalışan sayısını bulma
SELECT d.dept_name, COUNT(e.id) AS calisan_sayisi
FROM Departments d
LEFT JOIN Employees e
ON d.dept_id = e.dept_id
GROUP BY d.dept_name;
Bu sorgu, bir sonraki kurs konunuz olan "SQL'de Gruplama ve Agregat Fonksiyonları" için mükemmel bir geçiş örneğidir.

Sık Yapılan Hatalar ve En İyi Uygulamalar

<
  1. ON koşulunu unutmak: Her JOIN'de ON ifadesi ile birleştirme koşulunu belirtmelisiniz.
  2. Ambiguous column hatası: Aynı isimde sütunlar varsa tablo takma ismi kullanın (e.name gibi).
  3. Performans: JOIN yapılan sütunlar üzerinde indeks oluşturmak sorgu hızını artırır.
  4. NULL kontrolü: OUTER JOIN kullandığınızda NULL değerlerini hesaba katın.

Sonuç

SQL JOIN işlemleri, ilişkisel veritabanlarının gücünü ortaya çıkaran temel yapı taşlarıdır. INNER JOIN ile eşleşen verileri, LEFT/RIGHT/FULL JOIN ile eksik verileri de kapsayan sonuçları, SELF JOIN ile hiyerarşik ilişkileri ve CROSS JOIN ile tüm kombinasyonları elde edebilirsiniz. Bu konuyu öğrendikten sonra, SQL'de gerçek dünya veri analizi ve raporlama senaryolarına hazır olacaksınız.

Anahtar Kelimeler: SQL JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN, SELF JOIN, CROSS JOIN, SQL tablo birleştirme, SQL eğitimi, veritabanı JOIN, SQL sorgu örnekleri, ilişkisel veritabanı, SQL tutorial Türkçe

Yorum Gönder

0 Yorumlar