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。
暂无答案!
目前还没有任何答案,快来回答吧!