【问题标题】:Get all child hierarchy of a parent获取父级的所有子层次结构
【发布时间】:2014-07-31 06:08:56
【问题描述】:

我有一个表employeehierarchy,其中有很多记录。我想获取高级层次结构中的所有记录。

在此表中,Anshul 是大多数员工的高级员工,我想获取 Anshul 下的所有初级员工姓名,即 Yogesh、Chirag、Vimal 和 Ajay。

|   Id    |           name           |    | Senior     |    |  |  |  |  |
+---------+--------------------------+----+------------+----+--+--+--+--+
|      14 | Anshul                   |    |          0 |    |  |  |  |  |
|      15 | Yogesh                   |    |         14 |    |  |  |  |  |
|      16 | Chirag                   |    |         15 |    |  |  |  |  |
|      17 | Vimal                    |    |         16 |    |  |  |  |  |
|      18 | Ajay                     |    |         17 |    |  |  |  |  |

我需要一个 mysql 查询来实现这一点。 谢谢

【问题讨论】:

标签: mysql sql database hierarchy self-join


【解决方案1】:

希望这会对某人有所帮助,

    SELECT  @id :=
        (SELECT  Id
        FROM    employeehierarchy
        WHERE   Senior = @id
        ) AS employee
FROM    (
        SELECT  @id := 14
        ) vars
STRAIGHT_JOIN
        employeehierarchy
WHERE   @id IS NOT NULL;

【讨论】:

    【解决方案2】:

    您需要数据库中的某些内容来在您的 sr 和初级员工之间建立关系。不幸的是,它超出了关于如何实现这种关系的问题的范围。因为这更多地涉及数据库架构。 一种选择是在现有表中为每个员工创建一个新字段,该字段包含您的高级人员的 ID。 另一种选择是有一个单独的表,其中包含三个字段 id、员工 id、高级 id。

    我建议第二个选项。然后你可以在你的 SQL 中执行条件连接。

    【讨论】:

      猜你喜欢
      • 2023-03-31
      • 1970-01-01
      • 2020-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-07
      • 2015-07-28
      • 2012-12-17
      相关资源
      最近更新 更多