linq to sql 实现左(右)连接,那个方法是对的,该怎么处理
2024-09-03 01:34:57
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
};
最新文章
- .NET使用OpenSSL生成的pem密钥文件[1024位]
- git stash恢复
- android 监听软键盘的收起与打开
- linux命令----网络地址
- spring含参数 环绕通知demo
- Hadoop集群中Hbase的介绍、安装、使用
- gulp入门学习
- 【iOS基础】iOS 网络请求
- ORACLE创建OEM是老爱报的错误【weber出品】
- Java基础笔记-异常总结,包
- docker容器实战-----初级<;2>;
- JQuery常见事件
- 常用文本编辑器 editor 的常用插件 —— CopyEdit
- 集群Redis使用 Python pipline大批量插入数据
- 使用Shiro登录成功后,跳转到之前访问的页面实现
- Oracle_高级功能(2) 索引
- iOS.KVC.setValue:forKey:
- STM32CubeF4 FreeRTOS Examples don&#39;t work correctly with HAL_GetTick
- 让MySQL在美国标准下运行
- GIT——总结.1-