1、内连接。两个表的公共部分用Inner join,Inner join是交集的部分。

Select * from TableA A inner join TableB B on A.key=B.key

2、左外连接。A表和B表的共有,加上A的独有,简称全A。

Select * from TableA A left join TableB B on A.key=B.key

红色部分是两表的公有部分,此时8号记录是A表的独有,右边的部门表并没有满足的就用null补齐。

3、右外连接。A表和B表的共有,加上B的独有,简称全B。

Select * from TableA A right join TableB B on A.key=B.key

红色部分是两表的公有部分,右表全部查出来,左表没有满足的就用null补齐。

不管是左连接还是右连接,连接之后表格的高度要一样,不匹配的表全部用null对齐。

4、左连接。A的独有,把公有的去掉,A独占就没B什么事了。

On是join条件。

Select * from TabelA A left join TableB B on A.key=B.key where B.key is null

A表的独占,即B表的Id必定等于null

5、右连接。B的独有,把公有的去掉,B独占就没A什么事了。

Select * from TableA A right join TableB B on A.key=B.key where A.key is null

B表的独占,即A表的id肯定为null、

6、全连接。Full outer join是全连接。

Mysql不支持这种语法,但是oracle支持。

但是!MySQL中并不支持这种写法,所以只能通过别的方法。A、B的所有也就是A的独有、B的独有 和A、B的共同拥有的数据,Mysql中可以使用:

select * from Table A left join Table B on A.Key = B.Key  (找出A的所有)

union  (去重)

select * from Table A right join Table B on A.Key = B.Key(找出B的所有)

7、全外连接(Mysql中不支持下图写法)。左右表的共有数据之外的数据查询 。各自独有之和,偏偏没有中间部分。

筛选出对于A表而言B为空,对于B表而言A为空的。MySQL中也不支持这种写法,所以只能通过别的方法。其实全外连接也就是A的独有+B的独有。

Mysql语法:

select * from Table A left join Table B on A.Key = B.Key  where B.Key is null  (找出A的独有)

union (去重)

select * from Table A right join Table B on A.Key = B.Key where A.Key is null (找出B的独有)

最常用SQL joins:内连接(交集)、左外连接、右外连接、左连接、右连接、全连接(并集),全外连接的更多相关文章

  1. 内连接,外链接(左连接、右连接、全连接),交叉连接大总结+附SQL JOINS图解[转]

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

  2. Mysql常用sql语句(16)- inner join 内连接

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 利用条件表达式来消除交叉连接(cross joi ...

  3. mysql内连接(inner join 找两个表的交集)、左连接(left join 交集并且左表所有)、右连接(right join 交集并且右表所有)、全连接(mysql不支持)

    用两个表(a_table.b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接.外连接( 左(外)连接.右(外)连接.全(外)连接). MySQL版 ...

  4. sql ,内连接,外连接,自然连接等各种连接

    1.内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和c ...

  5. My SQL的内连接,外链接查询

    1.内连接:只连接匹配的行. 2.左外连接:包含左边表的全部行,以及右边表中所有匹配的行,无论右边的表有没有和左边匹配的行,左边的所有行都必须要显示. 3.右外连接:包含右边表的全部行,以及左边表中所 ...

  6. 【转】SQL中内连接和外连接

    如表     -------------------------------------------------     table1 | table2 |     ----------------- ...

  7. SQL Server内连接、外连接、交叉连接

    前言 在数据库查询中,我们常常会用到的表连接查询,而我自己在工作中也是时常用这些表连接查询.而就在刚刚我却还没有搞清楚数据库表连接到底有哪几种, 这几种表连接查询方式又有什么区别,实属惭愧!借以此文以 ...

  8. SQL中内连接和外连接的问题!

    本文系转载,版权归原作者所有. 如表      -------------------------------------------------      table1 | table2 |    ...

  9. Mysql常用sql语句(17)- left/right join 外连接

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 外连接分为两种:left join.right ...

随机推荐

  1. Linux 配置永久辅助IP

    1.什么是辅助IP 辅助IP来源于Linux之中,Linux的系统网卡可以支持多IP的绑定,而辅助IP多用于解耦解决服务之间的兼容性问题,常见的应用场景有: 虚拟IP,高可用飘逸: 永久临时IP解耦使 ...

  2. HashMap源码(JDK1.8)-手动注释

    HashMap简介 HashMap是一种K-V映射的一种数据结构,通过K(key)值能实现在O(1)的时间复杂度下找到对应的V(value).JDK1.8之前,HashMap的底层数据结构是数组+链表 ...

  3. Scala数据结构(数组,Map和Tuple)

    package com.zy import scala.collection.mutable import scala.collection.mutable.ArrayBuffer object te ...

  4. 使用TCP发送文件

    客户端 package com.zy.demo3; import java.io.File; import java.io.FileInputStream; import java.io.IOExce ...

  5. 1151 LCA in a Binary Tree

    The lowest common ancestor (LCA) of two nodes U and V in a tree is the deepest node that has both U ...

  6. HDU5740 Glorious Brilliance【最短路 KM匹配】

    HDU5740 Glorious Brilliance 题意: 给出一张不一定合法的染色图,每次可以交换相邻两点的颜色,问最少多少次能使染色图合法 合法的染色图相邻点的颜色不能相同 题解: 首先要确定 ...

  7. HDU 1754线段树

    第一个自己动手写的线段树,1Y还是有点小激动哈(虽然是模版题) 1 #include<cstdio> 2 #include<cstring> 3 #include<alg ...

  8. 【bzoj 2467】[中山市选2010]生成树(数论--排列组合)

    题目:有一种图形叫做五角形圈.一个五角形圈的中心有1个由n个顶点和n条边组成的圈.在中心的这个n边圈的每一条边同时也是某一个五角形的一条边,一共有n个不同的五角形.这些五角形只在五角形圈的中心的圈上有 ...

  9. POJ 1655 Balancing Act ( 树的重心板子题,链式前向星建图)

    题意: 给你一个由n个节点n-1条边构成的一棵树,你需要输出树的重心是那个节点,以及重心删除后得到的最大子树的节点个数size,如果size相同就选取编号最小的 题解: 树的重心定义:找到一个点,其所 ...

  10. [Golang]-8 工作池、速率限制、原子计数器、互斥锁

    目录 工作池 速率限制 原子计数器 互斥锁 工作池 在这个例子中,我们将看到如何使用 Go 协程和通道实现一个工作池 . func worker(id int, jobs <-chan int, ...