linq to mysql 左关联_linq to sql 实现左(右)连接,那个方法是对的,该怎么处理

linq to sql 实现左(右)连接,那个方法是对的

var query2 = from tb0 in db.table_0

join tb1 in db.table_1 on table_0.关联键 equals table_1.关联键

into all

from tb2 in all.DefaultIfEmpty()

select new { ... };

下面是另一方法。。。。。。

左连接left outer join,除了满足连接条件的行,还包括左表的所有行。

右连接right outer join,除了满足连接条件的行,还包括右表的所有行。

eg:var q =

from e in db.Employees

join o in db.Orders on e equals o.Employee into ords

select new

{

e.FirstName,

e.LastName,

Order = ords

};

说明:以Employees 左表,Orders右表,Orders 表中为空时,用null值填充。Join的结果重命名 ords,Order是一个集合。

虽然没有left关键字,但是实现的查询结果是一样的。

------解决方案--------------------

直接join是内连接。

------解决方案--------------------

它产生的sql语句是什么呢?

------解决方案--------------------

C# code

左连接:

var LeftJoin = from emp in ListOfEmployees

join dept in ListOfDepartment

on emp.DeptID equals dept.ID into JoinedEmpDept

from dept in JoinedEmpDept.DefaultIfEmpty()

select new

{

EmployeeName = emp.Name,

DepartmentName = dept != null ? dept.Name : null

};

右连接:

var RightJoin = from dept in ListOfDepartment

join employee in ListOfEmployees

on dept.ID equals employee.DeptID into joinDeptEmp

from employee in joinDeptEmp.DefaultIfEmpty()

select new

{

EmployeeName = employee != null ? employee.Name : null,

DepartmentName = dept.Name

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值