mysql---左连接、右连接、内连接之间的区别与联系
现有两张表
第一张表为男生表,记录了男生的姓名和配偶的编号
第二张表为女生表,记录了女生的姓名和自己的编号
第一种情况:主持人请所有男生都上台,并且带上自己的配偶。这时不管男生有没有配偶都要上台,所以是以男生表为基准关联女生表
可以考虑用左连接
屌丝比较悲剧,在女生表中没有他的配偶,所以gname和gname.other都为NULL。高富帅肯定美女环抱,所以有多行记录。
第二种情况:主持人请所有女生都上台,并且带上自己的配偶。这时不管女生有没有配偶都要上台,所以是以女生表为基准关联男生表
可以考虑用左连接
小美也比较悲剧,在男生表中没有对应的配偶,所以bname和bname.other都为NULL。至于小娇、小芝、小琳跟高富帅和小王的关系就比较乱了,也有多行。
第三种情况:主持人请所有有配偶的男女生上台,这是就可以用内连接了
可见boy left join girl on boy.other = girl.other含义是:在girl表中找到满足条件boy.other = girl.other的行与boy表中对应的行组合,boy表中没有在girl表中匹配的行补NULL。
左右连接及内连接的关系:
左右连接可以相互转换。A left join B on 条件 等价于 B left join A on 条件
内连接 A inner join B on 条件 是 A left join B on 条件 和 B right join A on 条件的交集。
mysql---左连接、右连接、内连接之间的区别与联系的更多相关文章
- PHP左、右、内连接
left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录.right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录.inner join: 内连接,又 ...
- SQL中的连接可以分为内连接,外连接,以及交叉连接 。
SQL中的连接可以分为内连接,外连接,以及交叉连接 . 1. 交叉连接CROSS JOIN 如果不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积: 举例, ...
- SQL Server中的连接查询【内连接,左连接,右连接,。。。】
在查询多个表时,我们经常会用“连接查询”.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 什么是连接查询呢? 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据 ...
- SQL 四种连接查询(内连接、左连接、右连接、全连接)
下面列出了您可以使用的 JOIN 类型,以及它们之间的差异. (1) JOIN: 如果表中有至少一个匹配,则返回行(inner join) (2) LEFT JOIN: 即使右表中没有 ...
- 关于数据库的左,右,内,外连接,Union和Union all---------笔记
1.左连接 select a.filed1,a.filed2,b.filed1 from a (左表) left join b(右表) on a.commonfiled = b.commonfiled ...
- [原创]java WEB学习笔记91:Hibernate学习之路-- -HQL 迫切左外连接,左外连接,迫切内连接,内连接,关联级别运行时的检索策略 比较。理论,在于理解
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Hibernate迫切左外连接和迫切内连接
•迫切左外连接: •LEFT JOIN FETCH 关键字表示迫切左外连接检索策略. –list() 方法返回的集合中存放实体对象的引用, 每个 Department 对象关联的 Employee ...
- oracle连接总结(内连接、外连接、自然连接,交叉连接,自连接)
1.简述 1) 两个表的连接,是通过将一个表中的一列或者多列同另一个表中的列链接而建立起来的.用来连接两张表的表达式组成了连接条件.当连接成功后,第二张表中的数据就同第一张表连接起来了,并形成了复合 ...
- SQL连接方式(内连接,外连接,交叉连接)
1.内连接.左连接.右连接.全连接介绍 內连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包含进来.内部连接是两个表中都必须有连接字段的对应值的记录,数据才能检索出来. 左连 ...
- SQL Server中的连接查询(内连接、外连接、交叉连接)
在数据库查询中,经常会用到两个有关联的表进行查询,需要把两个表中的数据按照某些条件查出来,这时就可以使用连接查询 连接查询分为三种:内连接.外连接和交叉连接 1. 内连接 内连接inner join ...
随机推荐
- python 闭包(closure)
闭包的定义: 闭包就是一个函数,这个函数可以记住封闭作用域里的值,而不管封闭作用域是否还在内存中. 来一个例子: def happy_add(a): print 'id(a): %x' % id(a) ...
- html中#include file的使用方法
有两个文件a.htm和b.htm,在同一文件夹下a.htm内容例如以下 <!-- #include file="b.htm" --> b.htm内容例如以下 今天:雨 ...
- UNIX标准化及实现之选项
POSIX.1的2001版,包括了ISO C标准所指定的各个函数.其接口分成了两类:必需接口和可选接口.可选接口按功能又进一步分成50个区.表1中按它们各自的选项代码总结了没有被弃用的编程接口.选项代 ...
- java_TreeSet 定制排序实例
package ming; import java.util.Comparator; import java.util.TreeSet; class M { int age; public M(int ...
- C#数据操作LINQ
Linq是language integrated query的缩写,即"语言集成查询"之意. Linq主要包含四个组件,Linq to object.Linq to XML.Lin ...
- 基于MVVM的知乎日报应用安卓源码
使用data binding , dagger2 , retrofit2和rxjava实现的,基于MVVM的知乎日报APP运行效果: <ignore_js_op> 使用说明: 项目结构 a ...
- Objective-C /iphone开发基础:协议(protocol)
protocol协议时为了补充Objective-C 只能单继承的缺陷而增加的一个新功能.Objective-C重所有的方法都是虚方法,所以在oc重也就没有关键字 virtual一说,有了协议可以补充 ...
- highcharts 去掉右下角链接
去掉右下角的highcharts.com链接需要加入以下代码: credits: { enabled:false }, 如果不设置,那么默认为显示.
- MYSQL交换两列数据实例
UPDATE cf_2015_company a, cf_2015_company bSET a.cname = b.linkman, a.linkman = b.cnameWHERE a.id = ...
- js ie8不支持项总结
不支持filter,trim 要用jquery 的$filter,$trim 数组不能用for in 要用for 数组没有indextOf方法 不能使用关键字,如true ,default IE8 ...