LINQ – Inner Join, Left Join, Right Join ve Full Join Kullanımı

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.

Paylaştıkça Artan Tat...