点击上方“Java知音”,选择“置顶公众号”

技术文章第一时间送达!

作者:CodingStar

cnblogs.com/BoyceYang/p/3145279.html

一、概要

JOIN对于接触过数据库的人,这个词都不陌生,而且很多人很清楚各种JOIN,还有很多人对这个理解也不是很透彻,这次就说说JOIN操作。

图片是很容易被接受和理解,所以尝试使用图片来说明一下。

二、JOIN分类

客官:小二,上JOIN分类!

……

小二:客官,新鲜出炉的JOIN分类图片来喽。

三、JOIN分类详解

客官:小二,速速详细道来!

小二:现在让小二来给您详细介绍。

INNER JOIN:

仅仅返回两个表中,匹配列相同的列值,所在行的数据。

SELECT * FROM Table1 t1 INNER JOIN Table2 t2 ON t1.Col1 = t2.Col1

LEFT OUTER JOIN:

左外连接:返回左表的所有数据,并且在右表中不能匹配的列值,其坐在行则使用空值。

SELECT * FROM Tables1 t1 LEFT OUTER JOIN Table2 t2 on t1.Col1 = t2.Col2

LEFT OUTER JOIN - WHERE NULL:

返回和右表不匹配的所有数据行

SELECT * FROM Table1 t1 LEFT OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 WHERE t2.Col1 IS NULL

RIGHT OUTER JOIN:

右外连接:返回右表的所有数据,并且在左表中不能匹配的列值,其所做在行则使用空值。

SELECT * FROM Tables1 t1 RIGHT OUTER JOIN Table2 t2 on t1.Col1 = t2.Col2

RIGHT OUTER JOIN – WHERE NULL:

返回和左表不匹配的所有数据行。

SELECT * FROM Table1 t1 RIGHT OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 WHERE t1.Col1 IS NULL

FULL OUTER JOIN:

完全连接可看作是左外连接和右外连接结果之和,返回两个表的所有数据,如果匹配列的值在两个表中匹配,那么返回数据行,否则返回空值。

SELECT * FROM Table1 t1 FULL OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1

FULL OUTER JOIN – WHERE NULL:

返回内连接以外的数据行,即匹配列坐在行以外的所有数据。

SELECT * FROM Table1 t1 FULL OUTER JOIN Table2 t2 ON t1.ID = t2.ID WHERE t1.ID IS NULL OR t2.ID IS NULL

CROSS JOIN:

交叉连接不需要任何连接条件。这个会把两个表的的数据进行笛卡尔积操作。

SELECT * FROM Table1 t1 CROSS JOIN Table2 t2

小二:小二已经介绍完毕,客官,请慢用。

Java知音,专注于Java领域 技术文章分享。

网址:www.javazhiyin.com  ,搜索Java知音可达!

看完本文有收获?请转发分享给更多人

sql left join用法_图解 SQL 中 JOIN 的各种用法相关推荐

  1. sql join on和不用join区别_图解 SQL 各种 JOIN,太有用了!

    点击上方蓝字关注小姐姐吧从业以来主要在做客户端,用到的数据库都是表结构比较简单的 SQLite,以我那还给老师一大半的 SQL 水平倒也能对付.现在偶尔需要到后台的 SQL Server 里追查一些数 ...

  2. left join 临时表_图解SQL的JOIN

    对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codin ...

  3. python中size的用法_在Python中PyArray_SIZE的正确用法是什么?

    我是新手操作C中的numpy数组.这里有一段代码让我1)将1-D,64-bit-float numpy数组列表传递给C和2)循环遍历每个数组,打印其内容. #include #include #inc ...

  4. python中or的用法_解析python中and与or用法

    在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值:而是,返回它们实际进行比较的值之一.>>> 1 and 2 and 3 3 > ...

  5. inner join on 加条件和where加条件_图解 SQL 中各种连接 JOIN

    先用文字来捋一下思路,数据库操作中无非就是「 增删查改 」,其中「 查」用得最多且最复杂,变化多端.查询的时候,我们可以只是单表查询,也可以是多表连接查询,单表查询中的学问也很大,但限于篇幅,本次主要 ...

  6. left join 临时表_不懂SQL优化?那你就OUT了——表连接的优化

    上一遍我们讨论了where 子句的优化,这一遍我们来讨论一下表连接的优化 我们知道在数据库中表连接有两种方式: 1. 内连接(inner join)2. 外连接(左外连接(left join), 右外 ...

  7. sql 过滤空值_图解 SQL,这简直太形象了吧!

    作者: 不剪发的Tony老师 来源:CSDN 链接:http://r6d.cn/qKD6 本文介绍关系数据库的设计思想:在 SQL 中,一切皆关系.在计算机领域有许多伟大的设计理念和思想,例如: 在 ...

  8. sql转java对象_关于hibernate中使用sql语句时,类对象的转换问题。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 @SuppressWarnings("unchecked") public List getAllStorytell(Long use ...

  9. sql 闩锁 原因_关于SQL Server中的闩锁

    sql 闩锁 原因 SQL Server locks, discussed in the article All about locking in SQL Server, which is appli ...

最新文章

  1. 关于asp.net mvc中的cookie的对象传递以及加密解密
  2. 5G 标准 — 3GPP
  3. 资源过于敏澸,8h删!这波福利....请笑纳。。
  4. 160个Crackme044
  5. 用 Scikit-Learn 和 Pandas 学习线性回归
  6. 聊聊asp.net中Web Api的使用
  7. C语言求二个数的最大公约数gcd和最小公倍数lcm(附完整源码)
  8. Tushare数据的绘图操作
  9. 负载均衡SLB中开启会话保持并选择重写Cookie时的配置方法
  10. 记录一次redis数据库搭建过程并详细说明配置
  11. 记一次线程池任务执行异常
  12. 编译ffmpeg、SDL、x264开源库 for ubuntu
  13. vsftp启用root用户
  14. 学生成绩管理系统V3.0链表版
  15. 赵栋 201771010137 《面向对象程序设计(java)》第二周学习总结
  16. tcp 状态转移图详解
  17. gif动态图片生成器,多张图片组合后生成动图...
  18. 03-Axure9默认元件库
  19. 毕业论文课题研究背景怎么写?
  20. 火狐控制台的html,怎么使用火狐浏览器调试网页

热门文章

  1. 阿里开源首个深度学习框架 X-Deep Learning!
  2. 复杂 SQL 查询跑不动?DRDS 只读实例来解决!
  3. 支持Dubbo生态发展,阿里巴巴启动新的开源项目 Nacos
  4. 一份关于机器学习中线性代数学习资源的汇总
  5. 深度剖析:Redis 分布式锁到底安全吗?看完这篇文章彻底懂了!
  6. 新型数据中心需要什么样的存储
  7. 到底是谁发明了物联网?
  8. 如何在DevSecOps道路上快速、安全地抵达终点
  9. 开放计算中国社区技术峰会举行,开放开源加速产业创新
  10. 测试linux内核镜像,测试Petalinux BSP镜像参考例子