T-SQL’de JOIN

5 Temmuz
2008

Genelde herkese karmaşık gelen bir işlemdir SQL de JOIN işlemi, hele T-SQL deki OUTER JOIN ler CROSS JOIN ler iyice bir karmaşıklaştırır işi. Basitçe JOIN işlemini anlatayım teorik olarak istedim, bende tam anlamıyla yeni öğrendim sayılır aslında.

Şimdi iki tane örnek tablomuz olacak tabi ki birleştirme işlemi için. A ve B tabloları şöyle olsun:

A Tablosu
ID     X
— —
1      A
2      B
3      C

B Tablosu
ID     Y
— —
1      a
4      b
5      c

İki tablonun ikişer ayrı kolonu var. ID leri eşleştirip JOIN yapacağız görülebileceği üzere. Önce salt JOIN ya da INNER JOIN yapalım. Bu durumda sadece ortak kesişen ID ler bazında tablolar birleştirecektir. Bu durumda tek bir satır olacak: 1 A 1 a şeklinde 4 kolona sahip olacaktır.

Sonra OUTER JOIN yapalım. Ancak bu sefer mantık ve yapı gereği iki tablonun sağ yada sol olarak mı birleştirileceğini vermemiz gerek. Daha doğru mantıkla bu iki tabloyu bir kesişen iki küme olarak düşünürsek kesişim + sağ küme, yada kesişim + sol küme den hangisinin alınacağı belirtmemiz gerek. Keza INNER JOIN de sadece keşişim kümesini aldığımızdan böyle bir durum yoktu. LEFT OUTER JOIN yaptığımızı varsayarsak: (N ler NULL anlamında)

1 A 1 a
2 B N N
3 C N N

3 satırlı bir tablomuz olur. RIGHT OUTER JOIN yaparsak:

1 A 1 a
N N 4 b
N N 5 c

Son olarak CROSS JOIN yapalım. Bu sefer diğer JOIN işlemlerindeki gibi bir ortak alan belirtmiyoruz bir nevi iki tablonun kombinasyon tablosu ortaya çıkıyor ki şöyle;

1 A 1 a
2 B 1 a
3 C 1 a
1 A 4 b
2 B 4 b
3 C 4 b
1 A 5 c
2 B 5 c
3 C 5 c

mantık olarak JOIN işlemi böyle, daha sonra syntax olarak yazımını da anlatırım,

Yorumlar kapalı.

başa dön