Join (Birleştirici), iki ya da daha fazla tabloyu aynı anda sorgulayarak bir sonuç tablosu oluşturmaya yarar. INNER JOIN, iki ya da daha fazla tabloda ortak olan iki alandaki değerleri kontrol ederek tabloları birleştirir. OUTER JOIN sadece iki tablo arasında kullanılır. LEFT OUTER JOIN kullanılırsa ifadenin solunda ismi yazan tabloda istenilen alanda tüm satırlar sonuç tablosunda gösterilir. RIGHT OUTER JOIN kullanılırsa ifadenin sağında ismi yazan
tablodaistenilen alanda tüm satırlar sonuç tablosunda gösterilir. FULL JOIN kullanılırsa, her iki tablodan da tüm satırlar çekilerek sonuç tablosunda gösterilir. LEFT OUTER JOIN için kısaca LEFT JOIN, RIGHT OUTER JOIN için de kısaca RIGHT JOIN kullanılır.
Örnek:
Customer Table
Order Table
Product Table
Inner Join
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
var result = (from p in Products join o in Orders on p.ProductId equals o.ProductId join c in Customers on o.CustomerId equals c.CustomerId select new { o.OrderId, o.OrderNumber, p.ProductName, o.Quantity, o.TotalAmount, o.OrderDate, c.CustomerName, c.MobileNo, c.Address }).ToList(); |
Left Outer Join
1 2 3 4 5 6 7 8 9 10 11 12 |
var result = (from p in Products join o in Orders on p.ProductId equals o.ProductId into temp from t in temp.DefaultIfEmpty() select new { p.ProductId, OrderId = (int ? ) t.OrderId, t.OrderNumber, p.ProductName, Quantity = (int ? ) t.Quantity, t.TotalAmount, t.OrderDate }).ToList(); |
Right Outer Join
1 2 3 4 5 6 7 8 9 10 11 |
var result = (from o in Orders join p in Products on o.ProductId equals p.ProductId into temp from t in temp.DefaultIfEmpty() select new { t.ProductId, o.OrderId, t.ProductName, o.Quantity, o.TotalAmount, o.OrderDate }).ToList(); |
Cross Join
1 2 3 4 5 6 7 8 9 10 11 12 13 |
var result = from o in Orders from p in Products select new { p.ProductId, o.OrderId, p.ProductName, o.Quantity, o.TotalAmount, o.OrderDate }; |
Product tablosu ile order tablosu aynı, yanlış yüklenmiş
Çalışmaların çıktı sonuçları olmalı bence. Böyle kaynak olarak iyi kullanılamıyor.