2011-04-13 251 views
2

我知道有噸對這個職位,但他們都對我不明白什麼是左,右以及任何LEFT OUTER JOIN

我有2只列出了具體的問題:左對。我需要選擇左側不合適的所有元素。

List<T> left = GetLeft(); 
List<T> right = GetRight(); 

IEnumerable result = // Have no idea 

我該怎麼做?

回答

7

這聽起來不像一個連接在所有...這聽起來像:

var result = left.Except(right); 
+0

看起來完蛋了,我太習慣SQL – Dani 2011-04-13 15:43:58

1

這裏是一個解決方案,我發現。

找到所有的客戶沒有購買:

SQL:

Select c.Name from Customers c    
    Left Outer Join Purchases p on c.customerid=p.customerid 
    where p.price is null 

LINQ:

from c in Customers 
    join p in Purchases on c.customerid=p.customerid into custPurchases 
    from cp in custPurchases.DefaultIfEmpty() 
    where cp==null 
    select new 
    { 
    cc.Name 
    }