MySQL中的外连接

外连接是指查询出符合连接条件的数据同时还包含孤儿数据。


一、孤儿数据


孤儿数据是指被连接的列的值为空的数据。


二、左外连接(left outer join)


左外连接包含左表的孤儿数据;

一、向 employees 表中添加一条数据,名字:Lee,email :lee@sxt.cn入职时间为今天。他没有薪 水,没有经理,没有佣金。

Insert into employees(last_name , email , hire_date ) values(“lee” , “lee@sxt.cn” , sysdate());

二、查询所有雇员的名字以及他们的部门名称,包含那些没有部门的雇员。

 Select e.last_name , d.department_name from employees e left outer join      departments d on e.dept_id = d.department_id;

三、右外连接(right outer join)


右外连接包含右表的孤儿数据;

一、向 departments 表中添加一条数据,部门名称为 Testing,工作地点 ID为 5。

Insert into departments(department_name , location_id) values(“Testing” , 5);

二、查询所有雇员的名字以及他们的部门名称,包含那些没有雇员的部门。

Select e.last_name , d.department_name from employees e right outer  join departments d on e. dept_id = d.department_id;

四、全外连接


MySQL中不支持full outer join连接,可以使用union实现完全连接;

Union

可以将两个查询结果合并,返回的行都是唯一的,如同对整个结果集使用了distinct;(去除了重复)

Union all

只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复 数据,那么返回的结果集就会包含充分的数据了;(不会去掉重复)

语法结构

Select 投影列 from 表名 left outer join 表名 on 连接条件 union select 投影 列 from 表名 right outer join 表名 on 连接条件;


查询所有雇员的名字以及他们的部门名称,包含那些没有雇员的部门以及 没有部门的雇员。

Select e.last_name , d.department_name from employees e left outer join departments d on e.dept_id = d.department_id union select em.last_name , de.department_name from employees em right outer join departments de on em.dept_id = de.department_id;

MySQL中的外连接相关推荐

  1. oracle 哦【的【,清晰讲解SQL语句中的外连接,通用于Mysql和Oracle,全是干货哦

    清晰讲解SQL语句中的外连接,通用于Mysql和Oracle,全是干货哦 直入主题: 我们做一个操作,将员工SCOTT的部门去掉,再次通过内连接查看数据,看看会产生什么现象? 使用内连接,查询数据 问 ...

  2. mysql与orancl_清晰讲解SQL语句中的外连接,通用于Mysql和Oracle,全是干货哦

    清晰讲解SQL语句中的外连接,通用于Mysql和Oracle,全是干货哦 直入主题: 我们做一个操作,将员工SCOTT的部门去掉,再次通过内连接查看数据,看看会产生什么现象? 使用内连接,查询数据 问 ...

  3. 【mysql】左外连接查询中 on 和 where 的区别

    论点 在使用 mysql 的左外连接(left join)查询时,驱动表(left join 左边的表),亦即数据需要全部被查出表的查询条件建议用 where 设定,被驱动表(left join 右边 ...

  4. MySQL中的内连接和外连接

    一.MySQL内连接(INNER JOIN) 内连接,又称为等值连接,是最常见的连接类型.它根据两个(或多个)表中具有相同列值的行来创建一个新的结果表.在内连接中,只有通过连接条件匹配的行才会被包含在 ...

  5. Mysql 中的SSL 连接

    Mysql 中的SSL 连接 以下来自网络参考和自己测试整理,没有查找相关资料.若有错误之处,欢迎指正. 当前的Mysql 客户端版本基本都不太能支持 caching_sha2_password 认证 ...

  6. 在mysql中如何为连接添加索引_在MySQL中如何为连接添加索引

    http://hackmysql.com/case4 译文: 我先通过一个简单的例子说明在MySQL中如何为连接添加索引,然后再看一个有挑战性的例子. 简单的3个表的连接 表结构很简单,3个表tblA ...

  7. MySQL中包含外键无法删除数据的解决方案

    1.在数据库连接信息加入以下代码,意思就是允许执行多语句查询. allowMultiQueries=true 2.在删除语句前面加上SET FOREIGN_KEY_CHECKS=0; 意思就是取消My ...

  8. 简述SQL中的外连接

    简述SQL中的"外连接" 1.SQL中外连接分为三种:左外连接.右外连接.全外连接. 2.英文书写格式: 左外连接:LEFT OUTER JOIN(LEFT JOIN): 右外连接 ...

  9. 清晰讲解SQL语句中的外连接,通用于Mysql和Oracle,全是干货哦

    直入主题: 我们做一个操作,将员工SCOTT的部门去掉,再次通过内连接查看数据,看看会产生什么现象? 使用内连接,查询数据 问题:找不到SCOTT员工了,只有13条数据,这显然不合理:这就是内连接的缺 ...

最新文章

  1. PAT计算出2~N所有素数
  2. RMI-IIOP与JNDI简单小结
  3. 关于-32768补码的问题
  4. 信息学奥赛一本通(1245:不重复地输出数)
  5. Elastic-Job
  6. 【Divided Two】cpp
  7. Nginx完美解决前后端分离端口号不同导致的跨域问题
  8. Mysql中类似于oracle中nvl()函数的ifnull()函数
  9. AIML框架标签详解
  10. javascript 分割字符串
  11. Objective-C 入门教程
  12. visio绘制流程图连接线总拐弯
  13. sudo rosdep init 出现 ERROR: cannot download default sources list from:错误解决方法
  14. 基于STM32和ESP8266的WIFI信号检测仪
  15. iPhone4S 未能激活蜂窝移动数据网
  16. 【漏洞利用】逻辑漏洞之任意账号密码重置详解
  17. 简单解析一下,实施MES管理系统后有哪些效益
  18. JavaScript:实现将 base64 字符串转换为字节数组算法(附完整源码)
  19. win7如何启动蓝牙的设备添加到计算机
  20. 北邮信通导论第三单元智能温控风扇

热门文章

  1. 爬虫-windows下安装Scrapy及scrapy模块介绍
  2. centos 7 Chrony 集群同步时间
  3. 面向对象编程(OOP)和面向过程编程
  4. python变量进阶(可变不可变,局部变量和全局变量)
  5. java-Calendar类
  6. CentOS7使用阿里云镜像安装Mongodb
  7. 【HDU 5184】 Brackets (卡特兰数)
  8. C++ Primer Plus学习:第十章
  9. Oracle 体系结构2 - 共享和专用服务器
  10. 关于STM32使用RTC时复位后程序死在 RTC