Linq左外连接 多字段连接

在与数据库打交道时,有事会遇到需要使用左外连接,与多字段连接的情况;现在又多用Linq技术,不直接写sql语句了。

今天就写下使用linq实现左外多字段连接。

【数据表结构】

ID1 ID2 V1
     
     
     
     
LID1 LID2 V2
     
     
     
     

【代码】

 1      var query =(from t1 in db.table1
 2                  join t2 in db.table2
 3                  on new {ID=t1.ID1,UserID=t1.ID2}
 4                  equal new {ID=t2.LID1,UserID=t2.LID2}
 5                  into temp
 6                  from t in temp.DefaultIfEmpty()
 7                  where t1.ID1=99
 8                  orderby t1.V1 descending
 9                  select new
10                  {
11                         t1.ID1,
12                         t1.ID2,
13                         t1.V1,
14                         t.V2 ??  0
15                  }).ToList();

太晚了,就简单点写了,哈哈!

时间: 2024-10-16 05:08:12

Linq左外连接 多字段连接的相关文章

Linq 左外连接

swip consumer                               1 var result = from x in swip 2 join y in consumer on x.f_CardNO equals y.f_CardNO into data 3 from z in data.DefaultIfEmpty() 4 select new 5 { 6 x.f_RecID, 7 x.f_CardNO, 8 x.f_ControllerSN, 9 x.f_InOut, 10

Linq to EF 内连接和左外连接

Linq中连接主要有组连接.内连接.左外连接.交叉连接四种.本文主要讲解没连接和左外连接. 本次使用到的数据实体模型具体的创建方法不再累述.该实体模型中包括Student.Course两个表,他们之间是一对多的关系. 一.内连接 内连接与SqL中inner join一样,即找出两个序列的交集 Model1Container model = new Model1Container(); //内连接 var query = from s in model.Student join c in mode

Linq 左连接 left join

Suppose you have a tblRoom and tblUserInfo. Now, you need to select all the rooms regardless of whether the room has user information or not. This calls for a LEFT JOIN which will select everything from the LEFT side (the room side) regardless of the

Hibernate5-一对多双向关联-左外连接-HQL

1.创建项目,项目名称hibernatedemo18,目录结构如图所示 2.在项目中创建lib目录存储jar文件,目录结构如图所示 3.在src目录中创建实体Bean Forum,包名(com.mycompany.demo.bean),如图所示 4.实体Bean Forum的内容如下 package com.mycompany.demo.bean; import java.util.Set; public class Forum { private int fid; private String

Hibernate5-一对多双向关联-迫切左外连接-HQL

1.创建项目,项目名称hibernatedemo19,目录结构如图所示 2.在项目中创建lib目录存储jar文件,目录结构如图所示 3.在src目录中创建实体Bean Forum,包名(com.mycompany.demo.bean),如图所示 4.实体Bean Forum的内容如下 package com.mycompany.demo.bean; import java.util.Set; public class Forum { private int fid; private String

MySQL的左外连接

代码: select t1.descid, IFNULL(t2.cnt,0) as countnew, t1.description from uosdesc t1 left outer join t2 on t1.descid=t2.descid order by countnew desc 说明: 左外连接,左表t1为主表,右表t2为从表. on后为条件,主表和从表做连接,若从表数据不存在则以NULL填充结果集. IFNULL判断结果集中字段,若为NULL则以第二个参数0替代之.

linq to entity 左联接 右连接 以及内连接写法的区别(转)

linq to entity 左连接 右连接 以及内连接写法的区别  还有就是用lambda表达式怎么写,那个效法效率高些? [解决办法]左连右连还是内连这个其实你不需要关心.只需要根据实体的映射关系写查询,框架会自动帮你生成的.至于linq查询语法与扩展方法的效率,应该是一样的,比如: C# code var users=(from u in db.Users where u.UserRoleId==1 select u) .ToList(); var users2=db.Users.Wher

左外连接,右外连接,全外连接

左外连接 用在查询块的from短语中 又称左连接,列出左边所有元组,A left join B on 条件表达式中的on决定了B表中符合条件表达式的数据才保留,不符合的右边字段为null where短语的条件等到外连接结束后才使用,对外连接结果进行过滤 例子: create table t1(c1 int primary key, c2 int); create table t2(cc1 int primary key, cc2 int); insert into t1 values (1,1)

mysql之内连接,外连接(左连接,右连接),union,union all的区别

内连接,外连接,左连接,右连接,全连接 测试数据: CREATE TABLE `a_table` ( `a_id` int(11) DEFAULT NULL, `a_name` varchar(10) DEFAULT NULL, `a_part` varchar(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into a_table values(1,"老潘","总裁部"),(2,&quo