2010-09-05 177 views
1

我实际上不确定这是否完全是左连接;我不是SQL的专家。我有以下的Linq查询:左加入Linq?

 var title = dataSet.Tables["title"].AsEnumerable(); 
     var author = dataSet.Tables["author"].AsEnumerable(); 
     var review = dataSet.Tables["review"].AsEnumerable(); 

     var results = from t in title 
         join a in author on t["Url"] equals a["Url"] 
         join r in review on t["Url"] equals r["Url"] 
         select new { 
          tText = t["InnerText"], 
          aText = a["InnerText"], 
          rText = r["InnerText"] 
         }; 

我的问题是,有时存在的“审核”列中没有匹配的评论,但我还是想拿到冠军,并在我的结果笔者。我怎样才能做到这一点?

回答

0

确定这个工作,不知道为什么,但:

 var title = dataSet.Tables["title"].AsEnumerable(); 
     var author = dataSet.Tables["author"].AsEnumerable(); 
     var review = dataSet.Tables["review"].AsEnumerable(); 

     var results = from t in title 
         join a in author on t["Url"] equals a["Url"] 
         join r in review on t["Url"] equals r["Url"] into g 
         from r in g.DefaultIfEmpty() 
         select new { 
          tText = t["InnerText"], 
          aText = a["InnerText"], 
          rText = r != null? r["InnerText"]: "" 
         };