原文地址:http://www.cnblogs.com/xinjian/archive/2010/11/17/1879959.html

准备一些测试数据,如下:

use Test Create table Student( ID int identity(1,1) primary key, [Name] nvarchar(50) not null )
Create Table Book( ID int identity(1,1) primary key, [Name] nvarchar(50)not null, StudentID int not null )
insert into Student values('张三') insert into Student values('李四') insert into Student values('王五') select * from student
--张三借的书 insert into Book values('红楼',1) insert into Book values('大话红楼',1)
--李四借的书 insert into Book values('三国',2)
--王五没借书 --一本错误的记录 insert into Book values('错误时怎样练成的',111)
--左连接 select s.name,b.name from student as s left join Book as b on s.id=b.studentid
--右连接 select s.name,b.name from student as s right join Book as b on s.id=b.studentid

要用Linq实现左连接,写法如下

DataClasses1DataContext db = new DataClasses1DataContext(); var leftJoinSql = from student in db.Student join book in db.Book on student.ID equals book.StudentID into temp from tt in temp.DefaultIfEmpty() select new { sname= student.Name, bname = tt==null?"":tt.Name//这里主要第二个集合有可能为空。需要判断 };

用Linq实现右连接,写法如下

DataClasses1DataContext db=new DataClasses1DataContext(); var rightJoinSql = from book in db.Book join stu in db.Student on book.StudentID equals stu.ID into joinTemp from tmp in joinTemp.DefaultIfEmpty() select new { sname=tmp==null?"":tmp.Name, bname=book.Name
};

参考资料:http://developer.51cto.com/art/200909/152189.htm

http://hi.baidu.com/thinsoft/blog/item/83fb1e9089cc7186a877a4b1.html

http://apps.hi.baidu.com/share/detail/12540006

http://www.winu.cn/space-14160-do-blog-id-25172.html

转载于:https://www.cnblogs.com/xbzhu/p/7373155.html

Linq中使用Left Join 和 Right Join相关推荐

  1. Linq 中的 left join

    Linq 中的 left join 表A User: 表B UserType: Linq: from t in UserType join u in User on t.typeId equal u. ...

  2. sql语句中left join和inner join中的on与where的区别分析

    原文:sql语句中left join和inner join中的on与where的区别分析 关于SQL SERVER的表联接查询INNER JOIN .LEFT JOIN和RIGHT JOIN,经常会用 ...

  3. Access SQL中Left Join、Right Join和Inner Join的使用

    1.表结构 表A                                     表B 2.Left Join 示例:2.1 Select * From A left join B on A. ...

  4. SQL中cross join,left join,right join ,full join,inner join 的区别

    http://blog.csdn.net/sgivee/article/details/5081350 SQL中cross join,left join,right join ,full join,i ...

  5. SQL 中 left join、right join、inner join 的区别

    SQL 三个 join 的含义 left join(左联接):返回左表中的所有记录以及和右表中的联接字段相等的记录. right join(右联接):返回右表中的所有记录以及和左表中的联接字段相等的记 ...

  6. sql中的left join、right join、inner join

    sql中的left join.right join.inner join 转自:http://www.cnblogs.com/pcjim/articles/799302.html left join( ...

  7. SQL中的left outer join,inner join,right outer join用法 (左右内连接)

    SQL语句中的left outer join,inner join,right outer join用法 left outer join=left join ,   right outer join= ...

  8. 关于SQL数据库中cross join 和inner join用法上的区别?

    使用mysql创建两张表 表a 表b 可以使用下面的脚本创建表,并且添加测试数据: CREATE TABLE `a`  (   `name` varchar(10) CHARACTER SET utf ...

  9. SQL中 Left Join 与 Right Join 与 Inner Join 与 Full Join的区别

    首先看看Left Join 与Right Join 与 Inner Join 与 Full Join对表进行操作后得到的结果. 在数据库中新建两张表,并插入要测试的数据. 新建表: [sql] USE ...

  10. sql中join类型_SQL Join类型概述和教程

    sql中join类型 This article will provide an overview of the SQL Join and cover all of the SQL join types ...

最新文章

  1. Linux 常用命令操作
  2. linux内核syscall_define6,Syscall系统调用Linux内核跟踪
  3. LDAP配置+主从+双主
  4. mysql 存储过程 动态建表_MySQL存储过程动态创建表,数据分表
  5. 浅析SEO优化怎样打好企业新站优化基础稳步提升排名
  6. jquery和JavaScript区别
  7. Android之TextView文字绘制流程
  8. python读取raw数据文件_在python下读取并展示raw格式的图片实例
  9. linux 内核配置 dns,linux bind dns简单配置
  10. leetcode - 统计封闭岛屿的数目
  11. 3个原因告诉你,为什么选择HTML5大前端?
  12. Python安装Pytorch教程(图文详解)
  13. ajax java base64 图片储存
  14. 利用 SendInput 和INPUT结构 模拟鼠标移动
  15. mysql数据库中更新数据表用以下哪一项_删除数据表用以下哪一项()_学小易找答案...
  16. C++基础学习笔记 day03
  17. 详解meta-viewport标签中的width和initial-scale属性
  18. 科比投篮预测——数据处理与分析
  19. labview与PLC通讯
  20. u盘格式化不了怎么办?恢复U盘,方法很简单

热门文章

  1. div根据内容改变大小并且左右居中
  2. 伪类 伪元素 如何区分
  3. Windows App开发之集合控件与数据绑定
  4. Servlet中乱码问题
  5. 杭电2032杨辉三角
  6. 艾伟:MOSS 2007 项目的开发步骤
  7. LeetCode OJ -- Binary Tree Paths
  8. Deep Ranking for Person Re-identification via Joint Representation Learning
  9. IT技术能治病救人-数据是21世纪最伟大的药物
  10. 模拟浏览器自动化测试工具Selenium之五Centos系统命令行下部署selenium环境试验