美文网首页
MySQL 为给定父行找到所有子行

MySQL 为给定父行找到所有子行

作者: 只是甲 | 来源:发表于2021-02-26 13:39 被阅读0次

备注:测试数据库版本为MySQL 8.0

如需要scott用户下建表及录入数据语句,可参考:
scott建表及录入数据sql脚本

一.需求

找到直接及简介(即JONES下属的下属)为JONES工作的所有员工。

JONES下属的员工列表如下所示:
+-------+------+
| ename | lvl |
+-------+------+
| JONES | 1 |
| SCOTT | 2 |
| FORD | 2 |
| ADAMS | 3 |
| SMITH | 3 |
+-------+------+

二.解决方案

能够移到数的绝对顶部和底部是非常有用的。

对于这个解决方案,不需要特殊的格式设置。目标只是返回位于员工JONES下属的所有员工,其中包括JONES自己。

这种类型的查询展示了递归SQL拓展的有用性,如Oracle的connect by和SQL Server/DB 2/MySQL 8.0的with子句等。

with recursive emp2(ename,empno,lvl) as
(
SELECT ename,empno,1 lvl
  from emp 
 where ename = 'JONES'
union ALL
select e1.ename,e1.empno,lvl + 1
  from emp e1,emp2 e2
 where e1.mgr = e2.empno
)
select ename,lvl from emp2

测试记录:

mysql> with recursive emp2(ename,empno,lvl) as
    -> (
    -> SELECT ename,empno,1 lvl
    ->   from emp
    ->  where ename = 'JONES'
    -> union ALL
    -> select e1.ename,e1.empno,lvl + 1
    ->   from emp e1,emp2 e2
    ->  where e1.mgr = e2.empno
    -> )
    -> select ename,lvl from emp2;
+-------+------+
| ename | lvl  |
+-------+------+
| JONES |    1 |
| SCOTT |    2 |
| FORD  |    2 |
| ADAMS |    3 |
| SMITH |    3 |
+-------+------+
5 rows in set (0.01 sec)

相关文章

  • MySQL 为给定父行找到所有子行

    备注:测试数据库版本为MySQL 8.0 如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数...

  • mysql中sql优化之索引简介

    索引用于快速找到与特定的列值的行。如果没有索引,Mysql会从第一行顺序遍历直到找到所有满足条件的行。那么大表就带...

  • 读书I 六顺六逆

    教育得当可使人得六顺:君王仁义,臣下恭顺,为父慈善,为子孝顺,为兄爱护,为弟恭敬。(古文:君义, 臣行,父慈,子孝...

  • 【“父行子效”】

    有个成语叫“父行子效”,意思是大人的行为最容易让孩子效仿。如果我们使用温和的方式解决问题,展现给孩子的是正直高...

  • 2018-05-10

    以行践言学《四书》——《中庸》篇077 【子曰:“无忧者其惟文王乎!以王季为父,以武王为子,父作之,子述之。武王缵...

  • 良知比知识更重要

    “父母在,不远行“。这是许多人经常说的。 但原话是:父母在,不远行,行必有方。父为子纲,父不慈,子奔他乡。君为臣纲...

  • css3 伸缩布局

    伸缩布局 设置父元素为伸缩盒子, (直接父元素) 为什么伸缩盒子子元素在一行上显示?子元素是按照伸缩盒子主轴方向显...

  • MySql中使用函数实现递归查询

      对于数据库中的树形结构数据,我们经常会有一种需求,给定一个父节点,查询这个父节点下所有的子节点,或者给定一个子...

  • line-height是怎么继承的?

    第一种:具体数值(子元素未设置具体行高数值,会自动继承父元素的行高) DEMO(下面代码子元素p继承了父元素的行高...

  • 青囊海角经

    1/16页 甲子一炁为五行始子九炁为五行本至甲九子七炁为五行标至甲七子五炁为五行体至甲五子三炁为五行终。东方壬子至...

网友评论

      本文标题:MySQL 为给定父行找到所有子行

      本文链接:https://www.haomeiwen.com/subject/ejoamktx.html