![]()
Join işlemleri yaparken birincil anahtarlar (Primary Key) veya yabancı anahtar (Forein Key) ile ilişkili tabloları birleştirerek istediğimiz verilerin filtreleriz. Tablolarda Primary Key yada Forein Key olmadan yapılan Join işlemleri sağlıklı olmayacaktır. Bu işlem yapılırken JOIN ve ON keywordlerini kullanırız. Tablonun adından sonra JOIN anahtar kelimesi sonra da ON anahtar kelimesi ile iki tablodaki ilişkili hangi alanlar varsa onları birleştiririz. Join işlemlerinden en sık kullandığımız İnner Join , Left Join, Right Join , Full Join, Cross Join işlemlerine bakacağız.
INNER JOIN : İlişkili iki veya daha fazla tablo arasındaki eşleşen kayıtları getirir.

|
1 2 3 4 5 6 7 8 9 |
SELECT * FROM Products P INNER JOIN Categories C ON P.CategoryID = C.CategoryID WHERE P.ProductName like ‘%Se%’ AND P.UnitPrice <> 8.50 ORDER BY P.ProductName DESC |

LEFT JOIN : İlişkili iki veya daha fazla tablodan eşleşen kayıtları getirirken, birincil tablodaki tüm kayıtları getirir.

|
1 2 3 4 5 6 7 |
SELECT ProductName,P.CategoryID, CategoryName, UnitPrice FROM Products P LEFT JOIN Categories C ON P.CategoryID = C.CategoryID WHERE UnitPrice BETWEEN 6.00 AND 100.00 AND C.CategoryName = ‘Condiments’; |

RIGHT JOIN : İlişkili iki veya daha fazla tablodan eşleşen kayıtları getirirken, ikincil tablodaki tüm kayıtları da getirir.

|
1 2 3 4 5 6 7 8 9 |
SELECT O.OrderID, O.CustomerID, O.EmployeeID,O.ShipCountry FROM Orders O RIGHT JOIN Customers C ON O.CustomerID = C.CustomerID RIGHT JOIN Employees E ON O.EmployeeID = E.EmployeeID WHERE O.Freight BETWEEN 100.00 AND 140.51 AND O.ShipCountry IN (‘Germany’,‘Brazil’,‘France’); |

FULL JOIN : İlişkili iki tablodaki tüm kayıtları getirir. Her iki tarafta da eksik eşleşmeler için NULL değerleri doldurur.

|
1 2 3 4 5 6 7 |
SELECT ProductName,P.CategoryID, CategoryName, UnitPrice FROM Products P FULL JOIN Categories C ON P.CategoryID = C.CategoryID ORDER BY C.CategoryID DESC |

CROSS JOIN : Birinci tablodaki bir kaydın diğer tablodaki tüm kayıtlarla eşleştirir. Yani iki tablonun çapraz çarpımını alır.

|
1 2 3 4 5 6 7 |
SELECT ProductName, CategoryName, UnitPrice FROM Products CROSS JOIN Categories |
Sağlıcakla kalın…








Bir yanıt yazın