MySQL 内连接、左连接、右连接、外连接、多表查询

构建环境:

create table t_emp(id int primary key, name varchar(20),deptId int
);create table t_dept(id int primary key,name varchar(20)
);insert into t_dept(id, name) values(1, '设计部');
insert into t_dept(id, name) values(2, '开发部');
insert into t_dept(id, name) values(3, '测试部');insert into t_emp(id, name, deptId) values(1, '张三', 1);
insert into t_emp(id, name, deptId) values(2, '李四', 2);
insert into t_emp(id, name, deptId) values(3, '王五', 0);
# ps:为了说明方便,t_emp 表 说成 A 表, t_dept 表说成 B 表

目录

一、INNER JION 内连接 ( A ∩ B )

SELECT * FROM t_emp e INNER JOIN t_dept d ON  e.deptId = d.id;

二、LEFT JOIN 左外连接( A 全有 )

SELECT * FROM t_emp e LEFT JOIN t_dept d ON e.deptId = d.id;

三、RIGHT JOIN 右外连接 (B 全有)

SELECT * FROM t_emp e RIGHT JOIN t_dept d ON e.deptId = d.id;

四、FULL JOIN 全外连接( A + B)

SELECT * FROM t_emp e LEFT JOIN t_dept d
ON e.deptId = d.id UNION
SELECT * FROM t_emp e RIGHT JOIN t_dept d ON e.deptId = d.id;

五、LEFT Excluding JOIN ( A - B 即 A 表独有)+

SELECT * FROM t_emp e LEFT JOIN t_dept d ON e.deptId= d.id WHERE d.id is null;

六、RIGHT Excluding JOIN ( B - A 即 B表独有)

SELECT * FROM t_emp e RIGHT JOIN t_dept d ON e.deptId= d.id WHERE e.id is null;

七、OUTER Excluding JOIN (A 与 B 各自独有)

SELECT * FROM t_emp e LEFT JOIN t_dept d ON e.deptId= d.id WHERE d.id is null
UNION
SELECT * FROM t_emp e RIGHT JOIN t_dept d ON e.deptId= d.id WHERE e.id is null;

转载于:https://blog.csdn.net/u010559460/article/details/98503010 常用的七种JOIN查询

MySQL 内连接、左连接、右连接、外连接、多表查询相关推荐

  1. MySQL sql99语法—左(右)外连接

    应用场景:用于查询一个表中有,另一个表中没有的记录. 特点: 外连接的查询结果为主表中的所有记录,如果从表中有和他匹配的,则显示匹配的值,如果从表中没有,则显示 null. 外连接查询结果 = 内连接 ...

  2. 什么时候使用内连接,什么时候使用外连接

    需要查找两张表同时存在的数据,使用内连接  需要查找两张表中一张表存在,另一张表不存在的时候使用左外链接 或 右外链接  内连接的查询结果都是满足连接条件的元组.但有时我们也希望输出那些不满足连接条件 ...

  3. MySQL学习思维导图(MySQL简介、SQL基础命令、约束、单表查询、多表查询、内置函数、存储过程、视图、事务、索引)

    MySQL学习思维导图 内容包括:MySQL简介.SQL基础命令.约束.单表查询.多表查询.内置函数.存储过程.视图.事务.索引 文章目录 MySQL学习思维导图 一.MySQL简介 二.SQL基础命 ...

  4. mysql伪列的使用,mysql伪列的妙用,mysql获取近几天的日期用来连表查询

    文章目录 写在前面 伪列的使用 初步 获取前几行 获取近几天的日期(用于关联查询) 配合UNION的妙用 UNION获取几行数据 获取近50天的日期(不使用其他表) 举一反三 写在前面 我们都知道or ...

  5. 【MySQL】MySQL 的连接(内、左、右、全)

    一.表 的连 结 1.目的:减少数据的冗余 2.核心:分类 ***连接时至少要两张表,连接主要有内连接(inner join).左外连接(left outer join).右外连接(right out ...

  6. 区分笛卡儿积,自然连接,等值连接,内连接,外连接—左,右

    1.笛卡尔积 笛卡儿积,不用多说,返回所有的情况. 2.自然连接 自然连接是在广义笛卡尔积R×S中选出同名属性上符合相等条件元组,再进行投影,去掉重复的同名属性,组成新的关系.自然连接是一种特殊的等值 ...

  7. 【Mysql】图解左、右、内与全连接

    一.前言 使用学生表与成绩表来演示Mysql中的各种连接查找 学生表的建表语句如下: CREATE TABLE student(id int(11) NOT NULL AUTO_INCREMENT C ...

  8. SQL的内连接、左连接、右连接、 交叉连接、全外连接

    sql表连接分成 外连接 . 内连接 和 交叉连接.. 外连接包括三种,分别是左外连接.右外连接.全外连接.. 对应的sql关键字:LEFT/RIGHT/FULL OUTER JOIN,通常我们都省略 ...

  9. 一篇文章看懂MySQL的多表连接(包含左/右/全外连接)

    MySQL的多表查询 这是第二次学习多表查询,关于左右连接还是不是很熟悉,因此重新看一下.小目标:一篇文章看懂多表查询!! 这篇博客是跟着宋红康老师学习的,点击此处查看视频,关于数据库我放在了Gith ...

  10. 左连接、右连接、交叉连接、全外连接

    第一部分.连接查询 一.内连接 内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值.内连接分三种: 1.等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询 ...

最新文章

  1. 2022-2028年中国半导体硅片行业深度调研及投资前景预测报告
  2. [deviceone开发]-Star分享的优惠券商户管理端App开源
  3. 验证mongodb主从复制过程~记录操作
  4. 大三时候实现的,关于大整数(超过long范围)加减乘除操作的头文件,并包含了实现RSA加解密的函数...
  5. mfc检测一个目录是否产生新文件_细数Java8中那些让人纵享丝滑的文件操作
  6. scala读取mysql文件_9. Scala操作外部数据 文件读取,xml,Excel,MySQL
  7. 【Golang 快速入门】项目实战:即时通信系统
  8. 成都中忻嘉业:抖音小店经营一段时间后能改类目吗
  9. java标书_java软件项目投标技术标书【精选】.doc
  10. css flex实现经典的三栏布局
  11. unity不规则碰撞_Unity中的刚体和碰撞器
  12. 介绍几种电路上常用的塑料插接件(1)
  13. 2021年美容师(中级)新版试题及美容师(中级)免费试题
  14. OpenCV裁剪图像任意区域
  15. 图片LSB隐写(java)
  16. php发布编辑删除功能,php实现添加修改删除
  17. 使用cityscapes数据集建立yolov7测试集
  18. 一次GPS和罗经检测的经历
  19. 2012年1月凯立德地图普高清全分辨率懒人包P1750-D5616-2721J09(完美破解,已上路实测,永久下载地址)...
  20. mp2551总线收发器芯片作用_8线总线收发器SN74LVCC3245的原理及应用

热门文章

  1. ABAP Submit 用法解析
  2. SAP收货时自动创建采购订单
  3. 罗永浩直播带货花落谁家?不止是价高者得之
  4. php分页怎么实行跳转,php分页函数,支持页码下拉选择跳转
  5. s.assign()用法c++_assign是什么意思
  6. python往mysql存入数据_Python操作mysql之插入数据
  7. mysql8集群的优点_介绍 MySQL 8 中值得关注的新特性和改进。
  8. java 销毁线程_线程 学习教程(一): Java中终止(销毁)线程的方法
  9. asmr刷新失败无法连接上服务器_App Store显示无法连接怎么解决?两个步骤足够了...
  10. 攻防世界(Pwn)dice_game, 栈溢出覆盖srand种子