SQL JOIN Türleri ve Aralarındaki Farklar
INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN ve CROSS JOIN gibi farklı JOIN türleri vardır ve her biri farklı kullanım senaryolarına sahiptir. Bu yazıda, SQL JOIN nedir, hangi durumlarda hangi JOIN türü kullanılmalı ve performans açısından nelere dikkat edilmeli? sorularına yanıt bulacaksınız.
SQL JOIN, ilişkisel veritabanlarında birden fazla tabloyu birleştirmek için kullanılan en önemli sorgu yöntemlerinden biridir.
1. INNER JOIN (İç Birleşim) Nedir?
INNER JOIN, iki tabloyu belirli bir koşula göre birleştirir ve yalnızca eşleşen kayıtları döndürür. Eğer iki tabloda da ortak bir değer yoksa, o kayıtlar sonuç kümesine dahil edilmez.
Örnek: haberler
ve haberlog
tablolarını bağlayalım:
SELECT haberler.id, haberler.baslik, haberlog.hits
FROM haberler
INNER JOIN haberlog ON haberler.id = haberlog.hid;
✅ Sadece eşleşen kayıtlar gelir. Eğer haberlog
tablosunda haberler.id
'ye karşılık gelen bir kayıt yoksa, o haber getirilmez.
2. LEFT JOIN (Sol Birleşim) Nedir? Avantajları Nelerdir?
LEFT JOIN, sol tablodaki tüm kayıtları getirir ve sağ tablodan eşleşen kayıtları çeker. Eşleşmeyen sağ tablo verileri NULL olarak döner.
Örnek:
SELECT haberler.id, haberler.baslik, COALESCE(haberlog.hits, 0) AS hits
FROM haberler
LEFT JOIN haberlog ON haberler.id = haberlog.hid;
✅ Tüm haberler gelir, okunma bilgisi olmayan haberlerde hits = 0
olur. Bu, eksik verileri yönetmek için çok kullanışlıdır.
3. RIGHT JOIN (Sağ Birleşim) Nedir? LEFT JOIN ile Farkı?
RIGHT JOIN, LEFT JOIN’in tam tersidir. Sağdaki tablodaki tüm kayıtları getirir, soldaki tablodan eşleşenleri çeker. Eğer sol tabloda karşılık yoksa, NULL döner.
Örnek:
SELECT haberler.id, haberler.baslik, haberlog.hits
FROM haberler
RIGHT JOIN haberlog ON haberler.id = haberlog.hid;
✅ haberlog
tablosundaki tüm kayıtlar gelir, eşleşmeyen haberler NULL olur.
4. FULL JOIN (Tam Birleşim) Nedir? MySQL’de Kullanılabilir mi?
FULL JOIN, hem sol hem sağ tablodaki tüm kayıtları getirir. Eşleşmeyen kayıtlar NULL olur. MySQL desteklemez, ama PostgreSQL ve MSSQL'de kullanılabilir.
Örnek:
SELECT haberler.id, haberler.baslik, haberlog.hits
FROM haberler
FULL JOIN haberlog ON haberler.id = haberlog.hid;
✅ Her iki tablodaki tüm veriler gelir, eşleşmeyenler NULL olur.
5. CROSS JOIN (Çarpraz Birleşim) ve Kullanım Alanları
CROSS JOIN, iki tablodaki tüm olası kombinasyonları üretir. Koşul yoktur ve her satır diğer tabloda tüm satırlarla eşleşir.
Örnek:
SELECT haberler.id, haberler.baslik, haberlog.hits
FROM haberler
CROSS JOIN haberlog;
✅ Sonuç, haberler
içindeki her kayıt haberlog
içindeki her kayıtla birleşir. Çok büyük veri setlerinde kullanılmamalıdır.
SONUÇ: SQL JOIN Çeşitleri ve Kullanım Karşılaştırması
JOIN Türü | Açıklama |
---|---|
INNER JOIN | Sadece eşleşen kayıtları getirir. |
LEFT JOIN | Sol tablodaki tüm kayıtları, sağdan eşleşenleri getirir. |
RIGHT JOIN | Sağ tablodaki tüm kayıtları, soldan eşleşenleri getirir. |
FULL JOIN | Her iki tablodaki tüm kayıtları döndürür. |
CROSS JOIN | Tablolar arasında çarpraz birleşim yapar. |
SQL'de JOIN kullanımı, veritabanı performansını doğrudan etkileyebilir. Eğer büyük veri setleri ile çalışıyorsanız, gereksiz JOIN kullanımlarından kaçınmalı ve gerektiğinde indeksleme (indexing) yapmalısınız.
Beğendi iseniz paylaşmayı unutmayınız.
Haber :
Dünyadan
Çok Okunanlar
» Henüz BUGÜN Haber Görünmüyor