MySQL no admite consultas jerárquicas nativas.
Para atravesar un número finito de niveles, podemos escribir consultas que obtengan resultados para cada nivel y combinar los resultados con UNION ALL
operador.
O bien, podemos escribir un programa almacenado MySQL (procedimiento) para un enfoque más recursivo.
Como ejemplo de enfoque utilizando una consulta SQL nativa:
SELECT t0.comp_code
FROM tb_corp t0
WHERE t0.mgr_emp_no = 111
UNION ALL
SELECT t1.comp_code
FROM tb_corp t0
JOIN tb_corp t1 ON t1.incharge_comp_code = t0.comp_code
WHERE t0.mgr_emp_no = 111
UNION ALL
SELECT t2.comp_code
FROM tb_corp t0
JOIN tb_corp t1 ON t1.incharge_comp_code = t0.comp_code
JOIN tb_corp t2 ON t2.incharge_comp_code = t1.comp_code
WHERE t0.mgr_emp_no = 111
UNION ALL
SELECT t3.comp_code
FROM tb_corp t0
JOIN tb_corp t1 ON t1.incharge_comp_code = t0.comp_code
JOIN tb_corp t2 ON t2.incharge_comp_code = t1.comp_code
JOIN tb_corp t3 ON t3.incharge_comp_code = t2.comp_code
WHERE t0.mgr_emp_no = 111
etc. Este enfoque se puede extender a t4, t5, t6, ... hasta un número finito (razonable) de niveles.
Para un enfoque más recursivo, se puede escribir un programa almacenado MySQL (PROCEDIMIENTO).