连表查询

连表查询通常分为内连接和外连接。内连接就是使用INNER JOIN进行连表查询;而外连接又分为三种连接方式,分别是左连接(LEFT JOIN)、右连接(RIGHT JOIN)、全连接(FULL JOIN)。下来我们一起来看一下这几种连接方式的区别及基础用法。

内连接

INNER JOIN

INNER JOIN将只会返回相匹配的元素项,即不会返回结果为NULL的数据项。如下图所示:

INNER JOIN查询的两张表(A、B)的共有的部分,查询结果为null的记录不会出现。

外连接

关键字OUTER是可选择的,取决于具体语言,在实现上它们都是遵循标准的

LEFT JOIN

关键字从左表(A)返回所有的行,即使右表(B)中没有匹配。如果右表中没有匹配,则结果为NULL。

简单来说就是不管右表(B)有没有匹配到,都会完全输出左表(A)的所有记录,只是当右表的内容没有匹配到时,则将右表对应的字段的内容设置为NULL。

当然,对查询的SQL语句稍加改动就可以实现只查询A表中存在的记录。比如说添加一个右表的key为NULL的筛选条件。

RIGHT JOIN

关键字从右表(B)返回所有的行,即使左表(A)中没有匹配。如果左表(A)中没有匹配,则结果为 NULL。

如左连接类似,不管左表(A)有没有匹配到结果,都完全显示右表(B)的所有记录,将左表(A)没有匹配到的字段值设为NULL。

当然,也可以进行简单的筛选得到只有右表(B)存在的记录,设置左表中的key是NULL。

FULL JOIN

关键字只要左表(A)和右表(B)其中一个表中存在匹配,则返回行。FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。

简单来说就是只要两张表(A、B)中任意一张表中存在匹配,则返回记录,当然也可以简单的筛选得到两表中单独存在的记录。比例a.key is null or b.key is null。

mysql的连表查询_MySQL_连表查询相关推荐

  1. mysql 快捷查询数据库各表占用空间,mysql查看索引占用空间,mysql查看数据占用空间

    先贴一张图! 第一步,"很重要" 在mysql中,有一个创建之初自带的库information_schema,这个库中包含着数据库相关信息,查询数据占用空间就是使用该库,所以首先进 ...

  2. 使用python对学生表的查询_多表组合查询——Python操作Mysql数据库

    前面我们介绍了单张表的查询,包括模糊查询.分组.排序.各种筛选条件等等操作,在实际应用中,查询的数据往往不止局限在一张表里,通常需要多张表在一起进行组合查询,今天我们将会对Mysql当中的多张有关联的 ...

  3. 100G内存下,MySQL查询200G大表会OOM么?

    文章来源:https://sourl.cn/vwDNzn 我的主机内存只有100G,现在要全表扫描一个200G大表,会不会把DB主机的内存用光? 逻辑备份时,可不就是做整库扫描吗?若这样就会把内存吃光 ...

  4. desc mysql 连表查询_Mysql连表查询

    mysql的连接 语法: select 查询列表 rom 表1 别名 连接类型 join 表2 别名 on连接条件 where 筛选条件 group by 分组 having 筛选条件 order b ...

  5. golang mysql多表查询_MySQL多表查询

    一 多表连接查询 #重点:外链接语法 SELECT 字段列表 FROM 表1 INNER|LEFT|RIGHT JOIN 表2 ON 表1.字段= 表2.字段; #建表 create table de ...

  6. mysql数据库优化课程---16、mysql慢查询和优化表空间

    mysql数据库优化课程---16.mysql慢查询和优化表空间 一.总结 一句话总结: a.慢查询的话找到存储慢查询的那个日志文件 b.优化表空间的话可以用optimize table sales; ...

  7. Linux命令:MySQL系列之五--SELECT单表查询、多表查询升级及删除,插入

    SELECT:查询 SELECT select-list FROM tb WHERE qualification  根据标准qualification查找对应的行 查询语句类型:  qualifica ...

  8. mysql 多表查询or_MySQL 多表查询

    前期准备 #建表 create table dep( id int, name varchar(20) ); create table emp( id int primary key auto_inc ...

  9. mysql union all 别名_MySQL Union合并查询数据及表别名、字段别名用法分析

    本文实例讲述了MySQL Union合并查询数据及表别名.字段别名用法.分享给大家供大家参考,具体如下: union关键字 SELECT s_id, f_name, f_price FROM frui ...

最新文章

  1. R语言ggplot2可视化facet间隔设置语法实战
  2. 柏堰工业园有做机器人的吗_合肥柏堰科技园推进机器人应用 促产业转型升级...
  3. linux -- chcp
  4. html 最初级学习笔记一
  5. 使用Spring Integration聚合异步结果
  6. 升降摄像头设计!realme X今日亮相:现已在多平台开启预约
  7. Dropping Balls UVA - 679(二叉树的遍历)
  8. --从输入URL到页面展示的详细过程
  9. python执行过程_Python threading模块condition原理及运行流程详解
  10. project项目导入java路径_Eclipse项目怎么导入IDEA并运行(超详细)
  11. nodejs 查看下载文件路径_Python + selenium + Chrome 模拟登陆QQ邮箱,批量下载附件,本地重命名
  12. 谷歌的现实、摩托的无奈与联想的接盘
  13. wordpress原生html5播放器,让WordPress自带html5播放器-视频播放器调用代码详解,支持ios...
  14. 初探RabbitMQ与简单实现
  15. 只是为了好玩:linux之父林纳斯自传.pdf,读后感:《只是为了好玩:Linux之父林纳斯自传》...
  16. 数据中心编码命名标志标签的建议规范
  17. dirac 是什么?
  18. java-对文件内容进行排序
  19. 页游战龙三国+搭建GM后台
  20. 微信小程序从零开始开发步骤

热门文章

  1. mysql5.6使用profile工具分析sql
  2. Mac系统安装Aircrack-ng破解wifi密码(2)
  3. win8下面卸载MYSQL数据库
  4. C语言位操作--不用中间变量交换两数值
  5. office不能安装问题
  6. 人生何为苦何为乐何为幸福
  7. 组件开发之ASP.NET中集成资源文件的服务器端控件开发
  8. hdu 5720(贪心)
  9. LA 2659 poj 3076 zoj 3122 Sudoku(精确覆盖 + DLX)
  10. matPlotLib绘制决策树