首页 > 代码库 > 内连接和外连接
内连接和外连接
--------------------------------------------------------------------内连接--------------------------------------------------------------------内连接就是两张表都只显示符合连接条件的行。举例1:假设有两个Excel报表:出货表和产品表出货表:日期 客户 产品编码 数量2003-10-20 永华公司 1001 102003-10-21 风貌公司 1002 20产品表:产品编码 产品名称 生产厂家1001 PC机 创成公司1002 打印机 风华公司内连接条件为:出货表.产品编码=产品表.产品编码内连接的结果集为:日期 客户 产品编号 数量 产品名称 生产厂家2003-10-20 永华公司 1001 10 PC机 创成公司2003-10-21 风貌公司 1002 20 打印机 风华公司举例2:Book表
BookId BookName StudentId 1 《培训》 3 2 《成功秘诀》 5 3 《红楼梦》 3 4 《西厢记》 2 5 《水浒传》 6 6 《三国演义》 10 Student表
StudentId StudentName 1 张三 2 李四 3 关羽 4 张飞 5 黄聪 6 李逵 7 赵娜 8 王敏 NULL NULL 内连接查询:
select * from [Book] as b,[Student] as s where b.StudentId=s.StudentId
等价于如下(也可以不要关键字inner,此为系统默认)
select * from [Book] as b inner join [Student] as s ON b.StudentId=s.StudentId
内连接查询结果:
BookId BookName StudentId StudentName 4 《西厢记》 2 李四 1 《培训》 3 关羽 3 《红楼梦》 3 关羽 2 《成功秘诀》 5 黄聪
5 《水浒传》 6 李逵 -----------------------------------------------------------------------外连接-----------------------------------------------------------------------左外连接查询:select * from [Book] as b left join [Student] as s ON b.StudentId=s.StudentId
查询结果:
BookId BookName StudentId StudentId StudentName 1 《培训》 3 3 关羽 2 《成功秘诀》 5 5 黄聪 3 《红楼梦》 3 3 关羽 4 《西厢记》 2 2 李四 5 《水浒传》 6 6 李逵 6 《三国演义》 10 NULL NULL 执行过程:
即以from [Book] left join [Student]的Book表为基准,即以Book表(b表)的b.StudentId为基准。遍历Student表(s表)中与之匹配的b.StudentId。若b.StudentId含有s.StudentId匹配项,则进行拼接,然后遍历Student表的下一条s.StudentId,当查询完毕则进入下一条b.StudentId。若b.StudentId没有相应s.StudentId匹配项时,则显示左表的项,拼接右表的项显示为NULL。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。