Takip et

SQL Join Mantığını Kavramak

Merhaba, uzun süredir aklımda böyle bir makale yazmak vardı fakat pek zaman bulamamıştım. SQL üzerinde JOIN mantığı yeni başlayan developerlara çokça karmaşık ve zor gelir. Elimden geldiğince basit bir anlatım yapmaya çalışacağımdan şüpheniz olmasın.

Haydi başlayalım!

SQL sorgusundaki bir JOIN, en basit tabiriyle iki tablodaki kayıtları birleştirmek için kullanılır. En önemli kural JOIN ilgili olan sütun değerlerinin iki tabloda olması. Yani siz tek tabloda zaten JOIN kullanmaya gereksinim duymazsınız. Bir SQL sorgusu, sıfır, bir veya birden çok JOIN segmenti içeriyor olabilir. INNER JOIN = JOIN‘dir Yani ikisi aynı işleve sahiptir. INNER anahtar kelimesi isteğe bağlıdır.

Farklı JOIN tiplerine bir göz atalım

(INNER) JOIN: Her iki tabloda da eşleşen değerlere sahip kayıtları seçer.
LEFT (OUTER) JOIN: Doğru tablo kayıtlarıyla eşleşen kayıtları önce (soldaki) tablodan seçer. (Son taraftaki tablo baz alınır)
RIGHT(OUTER) JOIN: Eşleşen tablo kayıtlarıyla ikinci (sağdaki) tablodaki kayıtları seçer.(Sağ taraftaki tablo baz alınır)
FULL (OUTER) JOIN: Sol veya sağ tabloda bulunan kayıtlarla eşleşen tüm kayıtları seçer.

INNER ve OUTER anahtar kelimelerinin tamamıyla isteğe bağlıdır. JOIN’ler arasındaki farkları aşağıdaki görselde daha iyi anlayacaksınız.

sql-joins
Şimdi dilerseniz syntax kullanımlarına bakalım.

Genel Kullanımı:

SELECT column-names
  FROM table-name1 JOIN table-name2 
    ON column-name1 = column-name2
 WHERE condition

Problem: Müdür tüm satışların müşteri kayıtlarını masasında istiyor.

Örneğin yandaki gibi iki ayrı tablomuz olsun. Problemimiz de yukarıda belirttiğim gibi olsun. Hadi bakalım!

Nasıl çözeceğiz? Artık ek yapmamız gereken öğrendiklerimizi uygulamak.

SELECT OrderNumber, TotalAmount, FirstName, LastName, City, Country
  FROM [Order] JOIN Customer
    ON [Order].CustomerId = Customer.Id

Sonuç başarılı. Tam da istediğimiz gibi. Screenshot_2

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.