内连接(INNER JOIN)(典型的连接运算,使用像   =   或   <>   之类的比较运算符)。包括相等连接和自然连接。 内连接使用比较运算符根据每个表共有的列的值匹配两个表中的行 
左连接(LEFT   JOIN   或   LEFT   OUTER   JOIN)是右左边表中的数据为基准,若左表有数据右表没有数据,否则显示左表中的数据右表中的数据显示为空 
右连接(RIGHT  JOIN  或  RIGHT   OUTER   JOIN)是以右边表中的数据为基准,若右表有数据左表没有数据,否则显示右表中的数据左表中的数据显示为空 
全连接( FULL   JOIN   或   FULL   OUTER   JOIN)   完整外部连接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。 
下面用几个实例来详细说明 
两个表: 
A(id,name) 
数据:(1,张三)(2,李四)(3,王五) 
B(id,name) 
数据:(1,学生)(2,老师)(4,校长)

内连接结果:

select A.*,B.* from A inner join B on A.id=B.id; 

1 张三 1    学生 
2 李四 2    老师

左连接结果:

select A.*,B.* from A left join B on A.id=B.id; 

1 张三 1    学生 
2 李四 2    老师 
3 王五 NULL NULL

右连接结果:

select A.*,B.* from A right join B on A.id=B.id; 

1    张三 1 学生 
2    李四 2 老师 
NULL NULL 4 校长

全连接结果

select A.*,B.* from A full join B on A.id=B.id; 

1 张三 1    学生 
2 李四 2    老师 
3 王五 NULL NULL 
NULL NULL 4 校长

**************** 
补充:下面这种情况就会用到外连接 
比如有两个表一个是用户表,一个是交易记录表,如果我要查询每个用户的交易记录就要用到左外外连接,因为不是每个用户都有交易记录。 
用到左外连接后,有交易记录的信息就会显示,没有的就显示NULL,就像上面我举得例子一样。 
如果不用外连接的话,比如【王五】没有交易记录的话,那么用户表里的【王五】的信息就不会显示,就失去了查询所有用户交易记录的意义了。 
****************

看一下结果就能明白各种连接的区别了。

转载:https://blog.csdn.net/dsiori/article/details/54926046

关于sql连接查询(内联、左联、右联、全联)的更多相关文章

  1. sql连接查询中的分类

    sql连接查询中的分类 1.内连接(结果不保留表中未对应的数据) 1.1等值连接:关联条件的运算符是用等号来连接的. 1.2不等值连接:连接条件是出等号之外的操作符 1.3自然连接:特殊的等值连接,在 ...

  2. sql连接查询(inner join、full join、left join、 right join)

    sql连接查询(inner join.full join.left join. right join) 一.内连接(inner join) 首先我这有两张表 1.顾客信息表customer 2.消费订 ...

  3. SQLServer SQL连接查询深度探险(摘录

    SQL连接查询深度探险[摘录] 测试环境: Windows XP Profession MySQL 5.0.45 Oracle 9i DB2 UDB 9.1 测试的SQL脚本如下:此脚本适合MySQL ...

  4. SQL连接查询基础知识点

    什么是连接 连接(join)查询是基于多个表中的关联字段将数据行拼接到一起,可以同时返回多个表中的数据. 下面以两个表为例子,举例说明一下不同的连接. SELECT * FROM products i ...

  5. SQL连接(内连接、外连接、交叉连接)

    SQL连接(内连接.外连接.交叉连接) 假设现在有两个表:table1 , table2 table1:                                table2 :  id     ...

  6. 转 SQL连接查询语句(内、外、交叉和合并查询)

    转 http://blog.csdn.net/u010011371/article/details/50596535 1.内连接 (INNER JOIN) 内连接也称自然连接,它是根据两个或多个表中的 ...

  7. MySQL学习(四) SQL连接查询

    更多情况下,我们查询的数据来源于多张表,所有有必要了解一下MySQL中的连接查询. SQL中将连接查询分成四类:交叉连接,内连接,外连接和自然连接. 数据准备 student表 -- -------- ...

  8. SQL连接:内连接、外连接、交叉连接。

    SQL连接可以分为内连接.外连接.交叉连接. 数据库数据:             book表                                          stu表 1.内连接 ...

  9. sql 连接查询

    什么是连接查询呢 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据. 目的:实现多个表查询操作. 分类 首先划分一下,连接分为三种:内连接.外连接.交叉连接 内连接(INNER JOIN): ...

随机推荐

  1. POJ 1442 Black Box(优先队列)

    题目地址:POJ 1442 这题是用了两个优先队列,当中一个是较大优先.还有一个是较小优先. 让较大优先的队列保持k个.每次输出较大优先队列的队头. 每次取出一个数之后,都要先进行推断,假设这个数比較 ...

  2. spring中使用HibernateTemplate或HibernateDaoSupport报类型转换错误

    使用spring的HibernateDaoSupport的时候.报错例如以下: java.lang.ClassCastException: java.lang.String cannot be cas ...

  3. Linux - Nginx的集群与负载均衡

    Nginx的集群与负载均衡 集群就是一群人干同样的活,负载均衡就是保证每个人都干得差不多.或者大人干得多一些,小孩干得少一些. Nginx实现负载均衡很方便. 准备三台服务器,一台是用于访问图片(66 ...

  4. [BZOJ 3363] Cow Marathon

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3363 [算法] 树的直径 [代码] #include<bits/stdc++. ...

  5. WEEX学习网站

    https://github.com/alibaba/weex https://alibaba.github.io/weex/  官网     http://weex.help/topic/57792 ...

  6. linux系统下块设备驱动程序

    顾名思义,块设备驱动程序就是支持以块的方式进行读写的设备.块设备和字符设备最大的区别在于读写数据的基本单元不同.块设备读写数据的基本单元为块,例 如磁盘通常为一个sector,而字符设备的基本单元为字 ...

  7. css3 背景background

    Css3背景<background> Css3包含多个新的背景属性,它们提供了对背景更强大的控制.可以自定义背景图的大小,可以规定背景图片的定位区域,css3还允许我们为元素使用多个背景图 ...

  8. 部署hexo后github pages页面未更新或无法打开问题

    title: 部署hexo后github pages页面未更新或无法打开问题 date: 2018-03-30 15:34:29 categories: methods tags: hexo gith ...

  9. python里使用reduce()函数

    reduce()函数在库functools里,如果要使用它,要从这个库里导入.reduce函数与map函数有不一样地方,map操作是并行操作,reduce函数是把多个参数合并的操作,也就是从多个条件简 ...

  10. AtCoder Beginner Contest 054

    1. A - One Card Poker 水题,直接输出大小. 2. B - Template Matching 暴力,每个位置枚举,比较. 3. C - One-stroke Path n的大小只 ...