C# LINQ默认只提供了JOIN,这种只会取两个表有交集的数据,在实际应用场景,我们一般会以一个表为主表,去关联表中查询相关补充字段,所以绝大部分时间都在用LEFT JOIN,那么实际上LINQ怎么做LEFT JOIN呢?
1 2 3 4 5 |
var left_join_sample_query = from t1 in table1 join t2 in table2 on t1.xid = t2.id into t1_t2 from t in t1_t2.DefaultIfEmpty() select t; var list = left_join_sample_query.Skip(0).Take(10).ToList(); |
如果是多张表LEFT JOIN呢?
1 2 3 4 5 6 7 8 9 10 11 12 |
var multi_left_join_sample_query = from t1 in table1 join t2 in table2 on t1.xid = t2.id into t1_t2 from t12 in t1_t2.DefaultIfEmpty() join t3 in table3 on t1.yid = t3.id into t1_t3 from t13 in t1_t3.DefaultIfEmpty() select new { t1.id, t1.xxx, t12.t2name, t13.t3name, }; var list =multi_left_join_sample_query.Skip(0).Take(10).ToList(); |
相信各位都能看明白吧?
郑重声明:
除特别声明为转载内容外,本站所有内容均为作者原创,谢绝任何单位和个人不经许可的复制和转播!
对于确有转载需要的,请先与作者联系,在获得允许后烦请在转载时保留文章出处。
本文出自Lupin's Blog:http://www.cnzui.com/archives/1249
除特别声明为转载内容外,本站所有内容均为作者原创,谢绝任何单位和个人不经许可的复制和转播!
对于确有转载需要的,请先与作者联系,在获得允许后烦请在转载时保留文章出处。
本文出自Lupin's Blog:http://www.cnzui.com/archives/1249