09_MySQL DQL_SQL99标准中的多表查询(外连接)
# 二、外连接
/*
场景:查询值在1个表中出现,在另外1个表中没有出现
特点:
0、也是两张表的字段拼接,分为主表和从表
1、外连接的结果,将显示主表中的所有记录行
如果连接字段在从表中有记录,则显示匹配值
如果连接字段在从表中没有记录,则显示null
2、外连接的结果 = 内连接结果 + 主表中有,从表中填充null的记录
3、左外连接,left左边的为主表
右外连接,right右边的为主表
4、全外连接 = 等值内连接+表1中有表2中没有+表2中有表1中没有(null天成)
MySQL不支持SQL99标准中的全外连接
*/
USE girls;
#案例1:查询男朋友不在男神表中的女神表
#1 先查看left join的结果
SELECT b.name, bo.*
FROM beauty AS b
LEFT JOIN boys AS bo
ON b.`boyfriend_id` = bo.`id`;
#2 过滤出id=NULL的记录
SELECT b.name
FROM beauty AS b
LEFT JOIN boys AS bo
ON b.`boyfriend_id` = bo.`id`
WHERE bo.`id` IS NULL; #使用bo的主键id来做过滤,为null的肯定是没有匹配到的
#3 使用right join完成同样功能
SELECT b.name
FROM boys AS bo
RIGHT JOIN beauty AS b
ON bo.`id` = b.`boyfriend_id`
WHERE bo.`id` IS NULL;
SELECT bo.*, b.*
FROM boys AS bo
LEFT JOIN beauty AS b
ON bo.`id` = b.`boyfriend_id`;
USE myemployees;
#案例1:查询没有员工的部门
SELECT d.department_name, d.`department_id`, e.`last_name`
FROM departments AS d
LEFT JOIN employees AS e
ON d.`department_id` = e.`employee_id`
WHERE e.`last_name` IS NULL;
09_MySQL DQL_SQL99标准中的多表查询(外连接)的更多相关文章
- 08_MySQL DQL_SQL99标准中的多表查询(内连接)
# sql99语法/*语法: select 查询列表 from 表1 别名 [连接类型] join 表2 别名 on 连接条件 [where 筛选条件] [group by 分组] [having 分 ...
- mysql数据库中的多表查询(内连接,外连接,子查询)
用两个表(a_table.b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接.外连接( 左(外)连接.右(外)连接.全(外)连接). MySQL版 ...
- Hibernate中的多表查询及抓取策略
1.Hibernate中的多表查询 1.1SQL中的多表查询 [交叉连接] select * from A,B; [内连接] 显示内连接:inner join(inner 可以省略) Select * ...
- mysql中的回表查询与索引覆盖
了解一下MySQL中的回表查询与索引覆盖. 回表查询 要说回表查询,先要从InnoDB的索引实现说起.InnoDB有两大类索引,一类是聚集索引(Clustered Index),一类是普通索引(Sec ...
- Oracle中的多表查询
多表查询 l 笛卡尔积: N*M l 使用关联字段消除笛卡尔积的多余数据: SELECT EMP.*,DEPT.DNAME,DEPT.LOC FROM EMP, DEPT WHERE EMP.DEPT ...
- Oracle中的多表查询(笛卡尔积原理)
本次预计讲解的知识点 1. 多表查询的操作.限制.笛卡尔积的问题: 2. 统计函数及分组统计的操作: 3. 子查询的操作,并且结合限定查询.数据排序.多表查询.统计查询一起完成各个复杂查询的操作: 一 ...
- django中的跨表查询梳理
1.前言 最近在写一个小项目,里面主要涉及的就是表与表之间复杂的关系.当真正开发起来的时候,才发现自己对复杂的表关系间的查询有点混乱,趁着这几天的时间,重新梳理了一下. 2.概念 在开始之前,先明确几 ...
- Django中的跨表查询,多表查询。
一:Django中的ORM进行操作. 必须掌握的十三条: <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 & ...
- MyBatis中实现多表查询
如果查询的数据量大,推荐使用N+1次查询.数据量少使用联合查询... 一. 1.Mybatis是实现多表查询方式 1.1 业务装配:对两个表编写单表查询语句,在业务(Service)把查询的两表结果 ...
随机推荐
- OKEx量化分析报告[2017-12-19]
[分析时间]2017-12-19 09:05 [分析对象]OKEx [有效期限]2017-12-19 09:00:00 — 2017-12-19 09:59:59 [报告内容]DASH_USDT ...
- Yii框架2.0的模型
模型是 MVC 模式中的一部分, 是代表业务数据.规则和逻辑的对象. 可通过继承 [[yii\base\Model]] 或它的子类定义模型类,基类[[yii\base\Model]]支持许多实用的特性 ...
- replace未全局替换的坑
今天是名副其实的周六.悠闲了一早上(太阳). 真是人在家中坐,BUG自天上来.哈哈其实也不是自天上来,还是自己之前埋下的雷. 所以修复完线上的bug,我脑中立刻浮现出两件还需要做的事情: 一,就是我现 ...
- PHP魔术方法和魔术常量介绍及使用
魔术方法(Magic methods) PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __des ...
- SAMA5D3 Xplained Board
一.烧录 1)先在官网 http://www.at91.com/linux4sam/bin/view/Linux4SAM/Sama5d3XplainedMainPage 下载 linux4sam-p ...
- 我在Xcode 6上Swift框架的测试经验分享
我耗费了两个多月时间来琢磨Swift作为一门函数是编程语言都能做些什么,而今已经转移 到使用Swift来开发库文件了. 我花了一天的时间,最后发觉之前做的Swift特性探究是相当愉快的经历,我发现仍旧 ...
- Code signing is required for product type 'Application' in SDK 'iOS 11.2'
在打包的时候出现这样一个错误,Code signing is required for product type 'Application' in SDK 'iOS 11.2' ,就是说代码签名证书 ...
- Linux系统——Rsync数据同步工具
Rsync的优点及缺点 优点:类似cp命令.scp命令,但rsync为增量复制工具 缺点:针对大文件,效率非常高(打包再比对),针对小文件,效率非常低. Rsync作用 (1)可使本地和远程两台主机之 ...
- Lua 数学类
数学类主要有Vec2(坐标向量).Size(尺寸).Rect(矩形). 创建 在Lua中创建的 Vec2.Size.Rect 都是一个table类型. 其中只有相应的成员变量,没有相关的函数运算. c ...
- java获得两个日期之间的所有月份
private static List<String> getMonthBetween(String minDate, String maxDate) throws ParseExcept ...