摘自: https://blog.csdn.net/holly2008/article/details/25704471

表连接分为:CROSS JOIN、INNERT JOIN、OUTER JOIN、SELF JOIN。

一、CROSS JOIN 交叉连接

  CROSS JOIN连接用于生成两张表的笛卡尔集。
  1、返回的记录数为两个表的记录数乘积。比如,A表有n条记录,B表有m条记录,则返回n*m条记录。
  2、将A表的所有行分别与B表的所有行进行连接。

二、INNER JOIN 内连接

  内连接就是关联的两张或多张表中,根据关联条件,显示所有匹配的记录,匹配不上的,不显示。

  1、--也可以省略inner关键字,直接写join

  2、--如果两张表的关联字段名相同,也可以使用USING子句。

  

三、OUTER JOIN 外连接
  外连接,又分为:(-如果两张表的关联字段名相同,也可以使用USING子句)
        1.LEFT OUTER JOIN/LEFT JOIN(左外连接)
        2.RIGHT OUTER JOIN/RIGHT JOIN(右外连接)
        3.FULL OUTER JOIN/FULL JOIN(全外连接)

 1.LEFT OUTER JOIN/LEFT JOIN(左外连接)

左外连接就是关联的两张或多张表中,根据关联条件,显示匹配的记录,左表中有的记录,但是右表中没有匹配上的,以空(null)显示。
        LEFT OUTER JOIN也可以简写成LEFT JOIN,效果是一样的。

2.RIGHT OUTER JOIN/RIGHT JOIN(右外连接)
        右外连接就是关联的两张或多张表中,根据关联条件,显示匹配的记录。右表中有的记录,但是左表中没有匹配上的,以空(null)显示。
        RIGHT OUTER JOIN也可以简写成RIGHT JOIN,效果是一样的。

3.FULL OUTER JOIN/FULL JOIN(全外连接)
        全外连接就是关联的两张或多张表中,根据关联条件,显示所有匹配和不匹配的记录。(m + n)
        左表中有的记录,但是右表中没有匹配上的,以空(null)显示。右表中有的记录,但是左表中没有匹配上的,也以空(null)显示。
        FULL OUTER JOIN也可以简写成FULL JOIN,效果是一样的。

四、SELF JOIN 自连接

   自连接,就是把一张表取两个别名,当做两张表来使用,自己和自己关联。(一般不用)

  

  可以修改为

  

五、Natural JOIN 自然连接

  对两张表中名称、数据类型都相同的字段进行等值连接,并返回符合条件的结果

  两张表的相同的字段不能超过 11 个。

  eg:  select select_list from table1 natural join tabl2

六、总结
表连接分为:
  1.CROSS JOIN:显示迪卡尔积。
  2.INNERT JOIN:显示所有匹配的项。
  3.OUTER JOIN
     外连接又分为:
       1) LEFT OUTER JOIN/LEFT JOIN:显示左表的所有项,右表没有匹配的项,则以null显示。
       2) RIGHT OUTER JOIN/RIGHT JOIN:显示右表的所有项,左表没有匹配的项,则以null显示。
       3) FULL OUTER JOIN/FULL JOIN:显示所有匹配和不匹配的项,左右两张表没有匹配的,都以null显示。
  4.SELF JOIN:把一张表取两个别名,当做两张表来使用,自己和自己关联。

5、NATURAL JOIN: 把两张表根据同名称、同数据类型的字段进行连接起来,返回匹配的项。

3、sql 表的连接的更多相关文章

  1. 小谈SQL表的连接

    简述SQL连接 SQL连接呢,主要分为以下几种内连接,左连接,右连接,全连接(当然还有很多官方的说法,这里就讲讲最常用的). 既然都叫连接了,那至少要有两个对象,也就是说,至少要有两个表,要怎么样的表 ...

  2. sql 表的连接与查找

    A.left outer join: 左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行. SQL: select a.a, a.b, a.c, b.c, b.d, b.f fro ...

  3. sql 表的连接 inner join、full join、left join、right join、natural join

    一.内连接-inner jion : SELECT * FROM table1 INNER JOIN table2 ON table1.field1 compopr table2.field2 INN ...

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

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

  5. SQL表连接查询

    SQL表连接查询(inner join.full join.left join.right join) 表的数据有: 一.内连接-inner jion : 最常见的连接查询可能是这样,查出学生的名字和 ...

  6. sql表连接left join,right join,inner join三者之间的区别

    sql表连接left join,right join,inner join区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 (以左表数据为基准,不足补为NULL) ...

  7. sql表连接的几种方式

    这里有两张表TableA和TableB,分别是姓名表和年龄表,用于我们例子的测试数据 TableA id name 1 t1 2 t2 4 t4 TableB id age 1 18 2 20 3 1 ...

  8. SQL表连接

    背景 在上次的自考科目<数据库系统原理>中.已经接触到了关于数据库表连接的一些知识,近期的学习过程中又用到了关于数据库表的连接问题,趁此再跟大家一起回想一下. 导图总结 首先用一张思维导图 ...

  9. 一个典型的多表参与连接的复杂SQL调优(SQL TUNING)引发的思考

    今天在看崔华老师所著SQL优化一书时,看到他解决SQL性能问题的一个案例,崔华老师成功定位问题并进行了解决.这里,在崔华老师分析定位的基础上,做进一步分析和推理,以便大家一起研究探讨,下面简述该案例场 ...

随机推荐

  1. vue开发多页面应用

    1.添加多页面配置 在工程根路径下(package.json同目录)添加添加vue.config.js配置文件,内容为: module.exports = { pages: { index: 'src ...

  2. 迷人的bug--torch.load

    利用Google Colab跑了50代的EDSR超分神经网络,然后把网络模型下载到win10上做测试,结果,一直出错,卡了好久 结果百度到这一文章:Pytorch load深度模型时报错:Runtim ...

  3. C# 下载文件的心得

    下载文件最常用的有两种: 第一种:直接使用A标签,对应着文件的地址. 第二种:将文件写成流,然后在回传给客户端. 第一种,使用起来方便,但是有个坏处,如果你的文件是可编辑的文件(比如Excel wor ...

  4. shell脚本之awk、sed、grep案例

    1.BEGIN END用法user        DIR,内容显示用户名称.用户家目录   $NF为awk的内置变量,表示最后一行,$(NF-1)就表示倒数第二行,最后打印页脚 页眉显示 cat /e ...

  5. CEF3编译

    要使用CEF3首先就要编译 下载网址为http://opensource.spotify.com/cefbuilds/index.html#windows64_builds 如果下载不动 可以用我上传 ...

  6. leetcode 17电话号码的字母组合

    与子集70?类似,子集每次两个分支,本题每次k个分支,子集是第一次不push第二次push元素,本题是每次都push元素,因此,本题答案的长度都为k,子集题目为各种组合: /** res,level, ...

  7. awk 数值和字符串比较问题

    在linux终端输入如下命令: > echo "10025350462330387914 10025350462330388480" | awk '{if ($1 == $2 ...

  8. 阶段3 2.Spring_09.JdbcTemplate的基本使用_3 JdbcTemplate在Dao中的使用

    实际的开发过程中都是基于dao的 创建持久层dao 定义三个方法 持久层实现类 创建dao的实现类. 添加未实现的方法 通过spring注入 jdbcTemplate.所以这里生成一个jdbcTemp ...

  9. 阶段3 2.Spring_04.Spring的常用注解_4 由Component衍生的注解

    为什么要使用者三个注解 Controller:表现层 Service:业务层 Repository:持久层 在这里就是用Controller 运行也没问题 用Service Repository同样也 ...

  10. Tensorflow-gpu搭建CUDA 10.0与cuDNN等版本问题

    https://blog.csdn.net/weixin_42718092/article/details/85001140