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.


