上图中reportsTo 列的数据是manager id,找出manager的查询方法如下:

SELECT CONCAT(m.lastname,', ',m.firstname) AS 'Manager',

CONCAT(e.lastname,', ',e.firstname) AS 'Direct report'

FROM employees e

INNER JOIN employees m ON m.employeeNumber = e.reportsto

ORDER BY manager

可是以上查询没有 top manager ,当reportsto为NULL时,他就是top manager。

等价转化为 当e.reportsto =NULL,m.employeeNumber=NULL,e就是top manager。

SELECT IFNULL(CONCAT(m.lastname,', ',m.firstname),'Top Manager')AS 'Manager',

CONCAT(e.lastname,', ',e.firstname)AS 'Direct report'

FROM employees e

LEFT JOIN employees m ON m.employeeNumber=e.reportsto

ORDER BY manager DESC

此时用left join 是因为employees m可能为空,这是被左连接所允许的。

mysql self join_mysql self join的实现--left join 和inner join相关推荐

  1. mysql natural join_MySQL STRAIGHT_JOIN 与 NATURAL JOIN

    MySQL STRAIGHT_JOIN STRAIGHT_JOIN 是 MySQL 对标准 SQL 的扩展,用于在多表查询时指定表载入的顺序.在 JOIN 表连接中,同样可以指定表载入的顺序,本文只讲 ...

  2. mysql inner join_MySQL JOIN 语法说明与 INNER JOIN 语法用法实例

    MySQL JOIN 语法概述 SQL(MySQL) JOIN 用于根据两个或多个表中的字段之间的关系,从这些表中得到数据. JOIN 通常与 ON 关键字搭配使用,基本语法如下: ... FROM ...

  3. mysql hash join_MySQL Hash Join

    在MySQL 8.0.18之前,表的join方式只有嵌套循环(nested loop)这一种方式,8.0.18推出了hash join的方式以替代嵌套循环. 使hash join方式生效的前提是用于j ...

  4. mysql join using temporary 优化_MySQL 在 INNER JOIN 场景的使用-爱可生

    本文详细介绍了 MySQL 参数 join_buffer_size 在 INNER JOIN 场景的使用,OUTER JOIN 不包含.在讨论这个 BUFFER 之前,我们先了解下 MySQL 的 I ...

  5. MySQL 8.0 新特性之哈希连接(Hash Join)

    MySQL 开发组于 2019 年 10 月 14 日 正式发布了 MySQL 8.0.18 GA 版本,带来了一些新特性和增强功能.其中最引人注目的莫过于多表连接查询支持 hash join 方式了 ...

  6. mysql查缺补漏(一) and or优先级和多表join

    1. and 和 or 的优先级问题 在where字句中出现多个and or ,and的优先级 先于or的优先级, select * from table1 where id = 1 or id =2 ...

  7. 为什么是string.join(list)而不是list.join(string)?

    这一直使我感到困惑. 看起来这样会更好: my_list = ["Hello", "world"] print(my_list.join("-&quo ...

  8. oracle hash join outer,CSS_浅谈Oracle中的三种Join方法,基本概念 Nested loop join: Outer - phpStudy...

    浅谈Oracle中的三种Join方法 基本概念 Nested loop join: Outer table中的每一行与inner table中的相应记录join,类似一个嵌套的循环. Sort mer ...

  9. java join使用实例_Java多线程中关于join方法的使用实例解析

    先上代码 新建一个Thread,代码如下: package com.thread.test; public class MyThread extends Thread { private String ...

  10. left join 后数据变多_Flink 双流 Join 的3种操作示例

    在数据库中的静态表上做 OLAP 分析时,两表 join 是非常常见的操作.同理,在流式处理作业中,有时也需要在两条流上做 join 以获得更丰富的信息.Flink DataStream API 为用 ...

最新文章

  1. LeetCode简单题之拆炸弹
  2. 我们从2021谷歌I/O大会给的谜题中发现了隐藏信息
  3. 双系统grub启动linux,双系统ubuntu与Centos的grub启动(解决VFS报错)
  4. NoSuchMethodError和NoSuchMethodException 区别
  5. Python学习:字典
  6. 拯救跟我一样的初学者:XML到底是什么玩意,用能让初学者听得懂的话
  7. java安全初始化_java安全编码指南之:声明和初始化
  8. MapReduce案例-wordcount-准备工作
  9. 没有体现JAVA接口功能_深入浅出分析Java抽象类和接口【功能,定义,用法,区别】...
  10. 百万数据php7取出循环_Thinkphp5 分批批量导出百万条数据记录的Code,不用PHPEXCEL哦!...
  11. 力扣 有序数组的平方
  12. CreateFile和WriteFile
  13. eclipse安装ADT插件
  14. 2021计算机技术与软件考试报名时间,2021年上半年计算机技术与软件专业 技术资格(水平)考试报名通知...
  15. 路由器显示未连接网络连接到服务器ip,无线网络连接没有有效的ip配置怎么办?...
  16. CUDA C/C++ 教程一:加速应用程序
  17. 火狐浏览器上网速度慢解决方法
  18. android 一个app启动另一个App的几种方法
  19. 如何安装 ONLYOFFICE Workspace丨安装教程丨使用教程
  20. HouseRobber 打家劫舍

热门文章

  1. php array_merge内存不够,php array_merge函数使用需要注意的一个问题
  2. java 串口波特率_JAVA串口通信的方法
  3. 5g宣传方案_5G时代来了,VR如何玩转线上营销新模式
  4. python入门用spyder还是jupyter_python3工作环境部署+spyder3+jupyter notebook
  5. ubuntu 配置nfs server
  6. android 美颜,「照骗」要消失了?Android 11 或禁用自动美颜
  7. php 单一职责,PHP之单例模式(职责模式)
  8. goahead如何使用cgi服务_北斗导航系统现已提供全球服务!你知道如何使用这个服务吗?...
  9. android 应用程序分析之settings,Android 应用程序分析之Settings
  10. mysql的数据类型以及性能优化