- INNER JOIN'den farklıdır.
- Soldaki tablo baz alınarak sorgu çalıştırılmasıdır.
- Soldaki tablodan tüm kayıtlar çekilir ve sağdaki tabloda eşleşen kayıtlar aynen yazılır.
- Eşleşmeyen kayıtlar için NULL değer verilir.
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu
LEFT JOIN Kullanımı : SELECT <sütun_ad(lar)ı> FROM <ilk_tablo> LEFT JOIN <ikinci_tablo> ON <ilk_tablo>.<anahtar_alan> = <ikinci_tablo>.<anahtar_alan>
Örnek Sorgu : Sorgumuz SELECT kısmında iki sütun tekbir sütun adı altında birleştirilmiştir. Çalıştırıldığında çalışanın tam adı ve müşterilerden aldığı siparişler ve tarihleri listelenecektir.
SELECT Employees.FirstName+' '+Employees.LastName AS Name,OrderID,OrderDate
FROM Employees LEFT JOIN Orders ON Employees.EmployeeID=Orders.EmployeeID
OUTER JOIN-RIGHT JOIN Kullanımı
SELECT companyname, customers.CustomerID, orderdate
FROM customers RIGHT OUTER JOIN orders ON customers.CustomerID = orders.CustomerID
SELECT suppliers.companyname, shippers.companyname
FROM suppliers CROSS JOIN shippers
- LEFT OUTER JOIN işleminin tersini yapar.
- Sağdaki tablonun baz alınarak sorgu çalıştırılmasıdır.
- Sağdaki tablodan tüm kayıtlar çekilir ve soldaki tabloda eşleşen kayıtlar aynen yazılır.
- Eşleşmeyen kayıtlar için NULL değer verilir.
Örnek Sorgu : Sorgumuzda tüm müşteriler ve verdikleri siparişlerin tarihleri listelenecektir.
SELECT companyname, customers.CustomerID, orderdate
FROM customers RIGHT OUTER JOIN orders ON customers.CustomerID = orders.CustomerID
OUTER JOIN-CROSS JOIN Kullanımı
- İlişkili tablolar arasındaki tüm eşleşmeleri listeler.
- Ortak bir alan belirtilmesine gerek yoktur.
- CROSS JOIN kullanılırken ON ifadesi kullanılmaz.
Örnek Sorgu : Üreticilerin çalışabilecekleri tüm olası gemi şirketleri listelenir.
SELECT suppliers.companyname, shippers.companyname
FROM suppliers CROSS JOIN shippers
Hiç yorum yok:
Yorum Gönder