今天遇到一个逻辑很复杂的SQL,虽然写出来了,但是并没有完全体会,找了找资料,算是摸清楚了left join和inner join 的实际意义。

感谢PCJIM的文章,写的非常明白,原文地址:http://www.cnblogs.com/pcjim/articles/799302.html。

实际上,join的作用在于将2个表组合起来成为一个新表,如何组合,完全看是使用什么join。

inner join,属于等值连接,我有表A和表B,其中A.Column1和B.Column1作为连接条件,即

select

*

from A inner join B

on A.Column1 = B.Column1

那么,根据条件,SQL会将等值的表A表B组合起来得出以下格式:

A.Column1  A.Column2  A.ColumnX...  B.Column1  B.Column2  A.ColumnX...

  1      xxx      xxx        1      xxx      xxx

  2      xxx      xxx        2      xxx      xxx

而left join则仅仅以左表作为连接标准。

什么是左表?select * from A left join B on A.Column1 = B.Column1中的A即为左表(left的左边即左表咯)

最后SQL会将A和B全部信息组合为一个新表,如下所示

A.Column1  A.Column2  A.ColumnX...  B.Column1  B.Column2  A.ColumnX...

  1      xxx      xxx        1      xxx      xxx

  2      xxx      xxx        2      xxx      xxx

  3      xxx      xxx        null     null      null

从上面格式看出,当B表中的Column 1不存在A表中Column的时候,SQL会返回null 信息来和A表组合成一个记录。

以上得出的结论呢,我更想表达的是join是将2个表合成为一个新的表,

在实际应用中,我们不单单是只用一个join,有时候,需要通过A和B的join得到一个表C,之后再用表D去joinC得到一个新表,

从新表得到我们想要得到的信息去做别的操作(今天就遇到这破逻辑........关键还是的把ER图画好啊......搞不清关系SQL是无法向下写下去的)

关于left join 和 inner join的更多相关文章

  1. mysql join 和left join 对于索引的问题

    今天遇到一个left join优化的问题,搞了一下午,中间查了不少资料,对MySQL的查询计划还有查询优化有了更进一步的了解,做一个简单的记录: select c.* from hotel_info_ ...

  2. 【转】mysql的union、left join、 right join、 inner join和视图学习

    1.联合 union 进行多个查询语句时,要求多次查询的结果列数必须一样.此时,查询的结果以第一个sql语句的列名为准且union会自动去重复我们应该使用union all. 例...... 1.联合 ...

  3. SQL Left Join, Right Join, Inner Join, and Natural Join 各种Join小结

    在SQL语言中,存在着各种Join,有Left Join, Right Join, Inner Join, and Natural Join等,对于初学者来说肯定一头雾水,都是神马跟神马啊,它们之间到 ...

  4. sql语法:inner join on, left join on, right join on详细使用方法

    inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有 ...

  5. sql之left join、right join、inner join的区别

    sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括 ...

  6. SQL中inner join、outer join和cross join的区别

    对于SQL中inner join.outer join和cross join的区别简介:现有两张表,Table A 是左边的表.Table B 是右边的表.其各有四条记录,其中有两条记录name是相同 ...

  7. SQL JOIN\SQL INNER JOIN 关键字\SQL LEFT JOIN 关键字\SQL RIGHT JOIN 关键字\SQL FULL JOIN 关键字

    SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据. Join 和 Key 有时为了得到完整的结果,我们需要从两个或更多的表中获取结果.我们就需要执行 join. 数据库中的表 ...

  8. SQL表连接查询(inner join、full join、left join、right join)

    SQL表连接查询(inner join.full join.left join.right join) 前提条件:假设有两个表,一个是学生表,一个是学生成绩表. 表的数据有: 一.内连接-inner ...

  9. MySql学习(三) —— 子查询(where、from、exists) 及 连接查询(left join、right join、inner join、union join)

    注:该MySql系列博客仅为个人学习笔记. 同样的,使用goods表来练习子查询,表结构如下: 所有数据(cat_id与category.cat_id关联): 类别表: mingoods(连接查询时作 ...

  10. 实现Map-side Join和Reduce-side Join(转)

    在大数据处理场景中,多表Join是非常常见的一类运算.为了便于求解,通常会将多表join问题转为多个两表连接问题.两表Join的实现算法非常多,一般我们会根据两表的数据特点选取不同的join算法,其中 ...

随机推荐

  1. web之ios开关按钮

    就是这个开关,代码是从weui上拷贝出来的. 至于weui自己百度吧 ^_^~ 开关代码如下: <!DOCTYPE html> <html lang="en"&g ...

  2. ThinkPHP实现导出

    刚开始做项目的时候,遇到了这个需求.说实话,对于一个才出来实习的菜鸟,而且还是才接触PHP的菜鸟而言,实在是有心杀敌,无力回天啊. 最简单的方法,就是网上找一个插件,然后一个本来就十几兆的项目,又增加 ...

  3. 个人收集资料整理-WinForm

    [2016-03-23 20:29:56] 别人收集常用: http://www.cnblogs.com/babycool/p/3541192.html

  4. python基础学习笔记6--异常

    异常 1.什么是异常?  python用异常对象来表示( exception object)异常情况.如果异常没有被处理或扑捉,程序就会所谓的回溯(TraceBack,一种错误信息)而终止执行: 2. ...

  5. m文件转换为C/C++文件的编译、绘图、参数、打包问题总结

    在工程计算相关项目中,常常利用Matlab来完成计算.算法.绘图等功能.使用Matlab来完成这些功能非常简单,Matlab提供的m编程语言功能强大,代码量少.为了在自己的C/C++项目中加入这些功能 ...

  6. POJ 2774 Long Long Message(后缀数组)

    [题目链接] http://poj.org/problem?id=2774 [题目大意] 求最长公共子串 [题解] 将两个串中间嵌一个字符相连,求一遍后缀数组 如果排名相邻的两个后缀的开端是分属于两个 ...

  7. Android animation学习笔记之view/drawable animation

    前一章中总结了android animation中property animation的知识和用法,这一章总结View animation和Drawable animation的有关知识: View ...

  8. Linux进程间通信总结

    刚请完婚假,请假期间做了些技术总结,其中一个就是Linux进程间通信方式的总结. Linux提供了多种进程间通信的方式,列举如下: PIPE(管道) FIFO(先进先出,也称为有名管道) domain ...

  9. SSIS Package 配置多数据库连接语句

  10. Use Excel to write insert SqlScript

    ="insert into Process.dbo.TempHampInGoodStandingLoanList (Loan_No,ProgramType,ModificationEffec ...