SQL JOIN Nedir?

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 JOINSol (birinci) tablodaki tüm kayıtları ve sağ (ikinci) tabloda eşleşen kayıtları getirir.
RIGHT JOINSağ (ikinci) tablodaki tüm kayıtları ve sol (birinci) tabloda eşleşen kayıtları getirir.
FULL JOINHer 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_idisimdepartman_id
1Ahmet101
2Ayşe102
3Mehmet103

📌 departmanlar tablosu

departman_iddepartman_adı
101Yazılım
102Muhasebe
104Satış

📌 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.

isimdepartman_adı
AhmetYazılım
AyşeMuhasebe

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ç:

isimdepartman_adı
AhmetYazılım
AyşeMuhasebe
MehmetNULL

📌 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ç:

isimdepartman_adı
AhmetYazılım
AyşeMuhasebe
NULLSatış

📌 “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ç:

isimdepartman_adı
AhmetYazılım
AyşeMuhasebe
MehmetNULL
NULLSatış

📌 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.

guest
0 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments
0
YORUM YAPx