报告具有管理器标志(循环)的行管理器的行管理器

i1icjdpr  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(274)
CREATE TABLE `empTest` (
    `keysearch` INT(8) NOT NULL,
    `flg_manager` INT(1) NOT NULL,
    `fk_manager` INT(8) NOT NULL,
    PRIMARY KEY (`keysearch`)
)

INSERT INTO `empTest` (`keysearch`, `fk_manager`, `flg_manager`) VALUES ('5407', '5866', 0);
INSERT INTO `empTest` (`keysearch`, `fk_manager`, `flg_manager`) VALUES ('5866', '0679', 0);
INSERT INTO `empTest` (`keysearch`, `fk_manager`, `flg_manager`) VALUES ('0679', '9177', 1);
INSERT INTO `empTest` (`keysearch`, `fk_manager`, `flg_manager`) VALUES ('9177', '0011', 1);

在上面的示例数据中,有3个用户(第4个是最后一个行管理器)。我希望能够选择“第一个keysearch,他们将flg\u manager设置为1”作为authmanager(表示他们是授权经理)
我希望得到的查询结果是:

Keysearch,AuthManager

5407,0679

5866,0679

0679,9177

我想它需要一个循环,但我真的不知道从哪里开始。我知道我需要使用中间雇员作为联接,以便能够从雇员5407看到雇员0679。令人恼火的是,在这个例子中,只有一个员工要“跳转”,但我需要能够解释多达8个跳转。
完全错误-但我完全不知所措。。。

SELECT e.keysearch, @manager AS manager
FROM emptest e, emptest m1, emptest m2
WHERE @manager = CASE WHEN (
SELECT e.fk_manager
FROM e
WHERE e.fk_manager = m1.keysearch AND m1.flg_manager = 1)

否则。。。
我需要做大量的案例循环吗?
有什么建议吗?运行10.3。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题