SQL’de JOIN
ifadesi, iki veya daha fazla tabloyu birleştirerek ilgili verileri tek bir sorguda getirmek için kullanılır. Genellikle, tablolar arasındaki ortak bir sütun (genellikle bir foreign key) üzerinden bağlantı kurulur.
1. SQL JOIN Türleri
SQL’de 4 temel JOIN
türü vardır:
JOIN Türü | Açıklama |
---|---|
INNER JOIN | İki tabloda da eşleşen kayıtları getirir. |
LEFT JOIN | Sol (birinci) tablodaki tüm kayıtları ve sağ (ikinci) tabloda eşleşen kayıtları getirir. |
RIGHT JOIN | Sağ (ikinci) tablodaki tüm kayıtları ve sol (birinci) tabloda eşleşen kayıtları getirir. |
FULL JOIN | Her iki tablodaki tüm kayıtları getirir (eşleşen ve eşleşmeyen). |
2. INNER JOIN Kullanımı
📌 INNER JOIN, sadece her iki tabloda da eşleşen kayıtları getirir.
Örnek Senaryo:
- çalışanlar tablosu: Çalışan bilgilerini içerir.
- departmanlar tablosu: Departman bilgilerini içerir.
Tabloların Yapısı:
📌 çalışanlar tablosu
çalışan_id | isim | departman_id |
---|---|---|
1 | Ahmet | 101 |
2 | Ayşe | 102 |
3 | Mehmet | 103 |
📌 departmanlar tablosu
departman_id | departman_adı |
---|---|
101 | Yazılım |
102 | Muhasebe |
104 | Satış |
📌 INNER JOIN Kullanımı:
SELECT çalışanlar.isim, departmanlar.departman_adı
FROM çalışanlar
INNER JOIN departmanlar
ON çalışanlar.departman_id = departmanlar.departman_id;
✅ Sonuç:
Bu sorgu, sadece eşleşen departman_id‘leri olan çalışanları getirir.
isim | departman_adı |
---|---|
Ahmet | Yazılım |
Ayşe | Muhasebe |
Mehmet’in departman_id’si 103’tür ancak departmanlar tablosunda 103 yoktur, bu yüzden getirilmez.
3. LEFT JOIN Kullanımı
📌 LEFT JOIN, sol (birinci) tablodaki tüm verileri getirir, sağ tabloda eşleşmeyen kayıtlar için NULL
döner.
SELECT çalışanlar.isim, departmanlar.departman_adı
FROM çalışanlar
LEFT JOIN departmanlar
ON çalışanlar.departman_id = departmanlar.departman_id;
✅ Sonuç:
isim | departman_adı |
---|---|
Ahmet | Yazılım |
Ayşe | Muhasebe |
Mehmet | NULL |
📌 Mehmet’in departman_id’si 103, ancak departmanlar tablosunda 103 olmadığı için NULL döndü.
4. RIGHT JOIN Kullanımı
📌 RIGHT JOIN, sağ (ikinci) tablodaki tüm verileri getirir, sol tabloda eşleşmeyenler için NULL
döner.
SELECT çalışanlar.isim, departmanlar.departman_adı
FROM çalışanlar
RIGHT JOIN departmanlar
ON çalışanlar.departman_id = departmanlar.departman_id;
✅ Sonuç:
isim | departman_adı |
---|---|
Ahmet | Yazılım |
Ayşe | Muhasebe |
NULL | Satış |
📌 “Satış” departmanı çalışanlar tablosunda olmadığı için isim sütunu NULL döndü.
5. FULL JOIN Kullanımı
📌 FULL JOIN, her iki tablodaki tüm verileri getirir. Eşleşmeyenler için NULL
döner.
SELECT çalışanlar.isim, departmanlar.departman_adı
FROM çalışanlar
FULL JOIN departmanlar
ON çalışanlar.departman_id = departmanlar.departman_id;
✅ Sonuç:
isim | departman_adı |
---|---|
Ahmet | Yazılım |
Ayşe | Muhasebe |
Mehmet | NULL |
NULL | Satış |
📌 Hem çalışanlar hem de departmanlar tablosunda eşleşmeyen kayıtlar NULL
olarak döndü.

Sonuç
JOIN
işlemi, SQL’de birden fazla tabloyu ilişkilendirerek daha anlamlı sonuçlar almamızı sağlar. En yaygın kullanılan JOIN
türü INNER JOIN’dir, ancak sol ve sağ JOIN
işlemleri eksik verileri de görüntülemek için kullanılır.