Linq实现LEFT OUT JOIN
来源:互联网 发布:谷歌地球mac 编辑:程序博客网 时间:2024/06/08 03:52
Linq实现LEFT OUT JOIN
原文地址:http://geekswithblogs.net/AzamSharp/archive/2008/04/07/121103.aspx
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 join on the right side. Here is the example.
假如你有两张表tblRoom(房间表)和tblUserInfo(住户表)。现在你需要检索出所有房间的信息,而不管这个房间是否有人居住。这就需要进行LEFT JOIN(左外连接),左外连接会检索出LEFT JOIN左边表中的所有行,而不管右边的表是否有匹配项。下面是一个例子:
var list = from r in dc.tblRooms
join ui in dc.tblUserInfos
on r.UserName equals ui.UserNameinto userrooms
from ur in userrooms.DefaultIfEmpty()
select new
{
FirstName = (ur.FirstName == null) ? "N/A" : ur.FirstName,
LastName = (ur.LastName == null) ? "N/A" : ur.LastName,
RoomName = r.Name
};
The anonymous type replaces the "null" FirstName and LastName with "N/A" (not available).
使用"N/A"(不可得)代替 FirstName 和 LastName 值为"null"的情况。
另附:Linq实现多个表 LEFT JOIN 如下
来自:http://hi.baidu.com/xuejianxiyang/item/0c9df0175c8dbdfaddeecae3
目标SQL语句(多表 LEFT JOIN 查询)
目标SQL语句(多表 LEFT JOIN 查询)SELECT id, name, jname, cname FROM userinfo u LEFT JOIN job j on u.job = j.jid LEFT JOIN city c on u.city = c.cid
Linq To Sql 实现三个表 LEFT JOIN 如下:
var list = (from u in dc.userinfos join j in dc.jobs on u.job equals j.jid into j_joinfrom x in j_join.DefaultIfEmpty() join c in dc.cities on u.city equals c.cid into c_joinfrom v in c_join.DefaultIfEmpty()select new{ id = u.id, name = u.name, jname = x.jname, cname = v.cname, /*u1=u,x1=x,v1=v*/ //不要用对象的方式 因为对象可能为null那么对象.属性就会抛异常}).ToList();for (var i = 0; i < list.Count(); i++){ Console.WriteLine(list[i].name + '\t' + list[i].jname + '\t' + list[i].cname); //字段为null不报异常 //Console.WriteLine(list[i].u1.name+'\t'+list[i].x1.jname+'\t'+list[i].v1.cname+"\r\n"); //对象x1 v1 有可能为null 抛异常}Console.ReadLine();
我用Linq自己写的3个表 LEFT JOIN 例子:
Emp(员工表)、Dept(部门表)、KqEmp(人员考勤信息表)
- Linq实现LEFT OUT JOIN
- linq实现Left join
- linq 扩展 之 left out join
- LINQ full out join 实现
- LINQ full out join 实现
- LINQ Join & Group Join & Left Join 实现与区别
- LINQ Join & Group Join & Left Join 实现与区别
- Linq 三表 left join 的实现
- linq to Entity 实现 left join
- Linq中如何实现inner join、left join
- Linq中如何实现inner join、left join
- Linq 的 left join
- left join linq
- Linq Left Join
- linq left join
- left out join举例
- Linq语句实现(INNER JOIN、LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOIN、CROSS JOIN)
- Linq inner join & left join & group join
- 在ASP.NET MVC中使用分布式缓存
- 以前忽略的javascript的知识点
- SQLite 创建,修改,删除表
- Eclipse快捷键大全
- 冯大辉:技术人如何才不至于虚度一生?
- Linq实现LEFT OUT JOIN
- 【JAVA IO】_数据操作流笔记
- Scrum
- 【BZOJ1047 || HAOI2007】理想的正方形
- Handler原理
- 点击图片变暗效果 省去一张点击效果的图片
- eoe社区Android NFC资料合集
- c语言中的全局数组和局部数组
- Android常用代码片段