LINQ – Inner Join, Left Join, Right Join ve Full Join Kullanımı
Join (Birleştirici), iki ya da daha fazla tabloyu aynı anda sorguya sokarak sonuç oluşturmayı sağlar.
INNER JOIN, iki veya daha fazla tablodaki ilişkili alan değerlerini kontrol ederek tabloları birleştirir.
OUTER JOIN sadece iki tablo arasında kullanılır.
LEFT OUTER JOIN kullanılırsa ifadenin solundaki tablonun tüm verilerini sağdaki ile ilişkilendirerek getirir.
RIGHT OUTER JOIN kullanılırsa ifadenin sağındaki tablonun tüm verilerini soldaki ile ilişkilendirerek getirir.
FULL JOIN kullanılırsa, her iki tablodan da tüm satırlar çekilerek sonuç tablosunda gösterilir.
Örnek Tablolarımız
Müşteri Tablomuz
Satış Tablomuz
Inner Join
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 });
Left Outer Join
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 });
Right Outer Join
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 });
Cross Join
var result = from o in Orders from p in Products select new { p.ProductId, o.OrderId, p.ProductName, o.Quantity, o.TotalAmount, o.OrderDate };
Sorularınızı yorum bırakarak sorabilirsiniz.