JOIN连接为内连接(INNER JOIN),如果A表与B表进行JOIN连接,都是查询这两个表的交集,所谓交集就是这条记录既在A表中存在也在B表中存在:mysql> SELECT a.id, a,name,b.dept from A as a join B as b on a.id = b.em_id

如何理解上面表两个表的交集,就是在A表是查找id和name,并在B表中一定能找到一条记录使得A表的id与B表中的em_id相等,如果找不到就不显示。

而OUTER JOIN称为外连接,也就是A表与B表的并集,所谓并集就是A表中有的记录B表中也有的就显示出来,如果B表中没有的,这条A表中的记录也会显示出来,只是对应选择B表中的字段在这一行是NULL,反过来,对于B表,B表中的记录在A表中存在,显示出来,如果在A表中不存在,则B表中的字段也会显示出来,只是对于A表中显示字段为NULL:mysql> SELECT a.id, a,name,b.dept from A as a outer join B as b on a.id = b.em_id

OUTER JOIN还有LEFT OUTER JOIN和RIGHT OUTER JOIN,如上SQL,如果将OUTER JOIN 改为LEFT OUTER JOIN,那么只有A表中存在的记录才会显录,无论B表中是否存在与此对应的记录,存在就关联显示B表的字段,否则B表字段显示为NULL,在A表中不存在B表中存在的记录,是不会在查询结果中列出的。RIGHT OUTER JOIN是反过来的情况。

如果使用LEFT OUTER JOIN或RIGHT OUTER JOIN时,这个OUTER通常可以不写,即直接使用LEFT JOIN或RIGHT JOIN。

mysql outer join的用法_MySQL 8 中的连接语法JOIN、OUTER JOIN的相关用法相关推荐

  1. mysql触发器调用存储过程出错_mysql 触发器中调用存储过程

    想要在MYSQL的触发器中调用存储过程,但是IDE提示: 0A000 Not allowed to return a result set from a trigger 触发器代码如下: DELIMI ...

  2. mysql版本链图解_图解 SQL 中各种连接 JOIN

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

  3. sql INNER JOIN 取得两个表中存在连接匹配关系的记录(mysql)

    首先:JOIN 通常与 ON 关键字搭配使用 其次我们来看我们的两个表格: table1: table2: 在这里,INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录. 例 ...

  4. mysql长时间后断开_mysql 长时间没连接了 就会自动断开服务

    这是因为mysql 长时间没连接了 就会自动断开服务. 解决办法 1.首先,下载必须的jar包 dbcp 包,目前版本是1.2.1:http://jakarta.apache.org/commons/ ...

  5. mysql substring用法_MySQL数据库中系统函数SUBSTRING功能简介

    摘要: 下文讲述MySQL数据库中系统函数SUBSTRING的功能说明,如下所示: 系统函数SUBSTRING的功能: SUBSTRING函数的功能: 用于从字符串的指定位置开始截取指定长度的字符串 ...

  6. mysql update join 锁表_Mysql事务中Update是否会锁表?

    两种情况: 1.带索引 2.不带索引 前提介绍: 方式:采用命令行的方式来模拟 1.mysq由于默认是开启自动提交事务,所以首先得查看自己当前的数据库是否开启了自动提交事务. 命令:select @@ ...

  7. mysql limit offset很大_MySQL查询中LIMIT的大offset导致性能低下浅析

    前言 我们大家都知道,mysql查询使用select命令,配合limit,offset参数可以读取指定范围的记录,但是offset过大影响查询性能的原因及优化方法 我们在业务系统中难免少不了分页的需求 ...

  8. mysql数据库约束详解_MySQL数据库中的外键约束详解

    使用MySQL开发过数据库驱动的小型web应用程序的人都知道,对关系数据库的表进行创建.检索.更新和删除等操作都是些比较简单的过程.理论上,只要掌握了最常见的SQL语句的用法,并熟悉您选择使用的服务器 ...

  9. mysql 获取一条数据_MySQL数据库中随机获取一条或多条记录

    在开发过程中遇到了一个问题,使用MySQL数据库,用SQL语句在表中随机获取一条或多条数据,看似简单,但是往深层研究的话还是很有深度的,查了好多资料,接下来给大家分享一下: 1. 随机获取单条数据 S ...

最新文章

  1. WPF ComboBox_SelectionChange事件中获取当前文本的方法
  2. OpenCV 色彩空间的改变
  3. NPOI 导入Excel和读取Excel
  4. /root/.bashrc与/etc/profile的异同
  5. 【JavaScript】Document对象学习
  6. Xcode 修改工程名以及注意事项
  7. 【Python学习笔记】Python深拷贝和浅拷贝
  8. Gitlab CI-3.遇到的问题
  9. JS面向对象的实现和原理
  10. 职称计算机excel2015年,【2015年职称计算机Excel重点精讲:创建数据透视表】- 环球网校...
  11. 理解 retain 、copy 、NSMutableString 、NSString 的用法
  12. python哈夫曼编码注意_[Python]哈夫曼编码
  13. fluent加载第三方(C++,Fortan等)动态链接库
  14. 招行首发芭比娃娃MP3
  15. emacs 常用命令与配置
  16. 攻读计算机应用在职研究生,在职研究生《计算机应用》复习资料.doc
  17. MSP430的485通信
  18. Shopee通知:未通过实名认证将导致订单无法正常出运
  19. 圣手键盘如何识别微软输入法的大小写状态?声音提示法
  20. HackTheBox-baby auth

热门文章

  1. 易基因|RRBS单碱基绘制580种动物的基因组规模DNA甲基化谱:Nature子刊
  2. javascript-ECMAScript
  3. ace 官网地址以及相关的下载地址--防止自己忘记
  4. 思科认证入门级课程介绍(二)
  5. Hive输出文件的间隔符
  6. 解决Windows无法NFS启动imx6ull开发板的问题
  7. 企业绩效管理怎么做?
  8. java+ssm驾校管理教练用户驾校系统@ssm
  9. vivo T2什么时候上市 vivo T2配置怎么样
  10. Android开发——“adb”不是内部或外部命令,也不是可运行的程序或批处理文件——解决方案