T-SQL Join İşlemleri
July 2021 (0) Iptv 2/5/2025
Merhaba,
Bu yazımda SQL Join ile sorgulama yapmayı anlatacağım. Verilerin birbiriyle bağlanması (join) sıkça yapılan bir işlemdir. Yeni başlayan birisi için joinler tam birer kargaşadan ibarettir. Konuyu kavrayabilmeniz adına kümelerden esinlenerek anlatacağım.
- Inner Join
- Left Join
- Right Join
- Cross Join
- Self Join
- Inner Join
Kümelerdeki karşılığı kesişimdir. Yani her iki tabloda olan veriler gelir.
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;veyaSELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;Not: Inner join ile join aynı işi yapar.Örnek: Bu sorgu ile hangi ürünün hangi firmadan alındığını bulmak istiyoruz:SELECT PRODUCTNAME,COMPANYNAME
FROM PRODUCTS AS P
INNER JOIN SUPPLİERS AS S ON S.SUPPLİERID=P.SUPPLİERID;
Left Join
Kümelerde sol tarafta olan küme demektir. Yani table 1 tablosundakiler koşulsuz gelir, table 2 tablosundan eşleştirebildiklerini (bu kısımlar kesişim bölümüne karşılık gelir) getirir, eşleştiremezse o alanları NULL olarak getirir.
SQL LEFT JOIN Syntax:SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;veyaSELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;Right JoinKümelerde sağ taraftaki kümedir. Table 2 tablosundaki veriler koşulsuz gelir, Table 1 tablosundan eşleştirebildiklerini (bu kısımlar kesişim bölümüne karşılık gelir) getirir, eşleştiremezse o alanları NULL olarak getirir.
SQL RIGHT JOIN Syntax:SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;VEYASELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;
Örnek:SELECT * FROM ORDERS AS O
RIGHT OUTER JOIN CUSTOMERS AS C ON C.CUSTOMERID=O.CUSTOMERID;
Cross Join
Cross Join ile bağladığımız tüm tablolar herhangi bir kısıtlamaya uğramadan tüm eşleşmeler listelenir.
Söz dizimi :
SELECT * FROM table1 CROSS JOIN table2;Örnek:
SELECT * FROM Categories CROSS JOIN Region;
.
Self Join
Bir tablonun kendisiyle işleme tutulmasına Self Join denir. Tabloda aynı değerleri içeren farklı kayıtlar varsa o tablo için farklı takma isimler kullanılarak join işlemi gerçekleştirilir. Bu yöntem çok kullanılan bir yöntem değildir.
Örnek:
SELECT a.EmployeeID AS SicilNo,a.lastname,a.title
,b.EmployeeID AS AltSicilNo, b.lastname ,b.title
FROM employees AS a
INNER JOIN employees AS b
ON a.title=b.title
WHERE a.EmployeeID < b.EmployeeID
ORDER BY a.EmployeeID;
Bu sorguda aynı tabloyu kendisiyle birleştirdik.
SELF JOIN işlemini aynı değerleri olan farklı kayıtlar üzerinde işlem yaparken kullanmalıyız.