В MySQL няма естествена йерархична поддръжка на заявки.
За краен брой нива, които трябва да бъдат преминати, можем да напишем заявки, които получават резултат за всяко ниво и да комбинираме резултатите с UNION ALL
оператор.
Или можем да напишем MySQL съхранена програма (процедура) за по-рекурсивен подход.
Като пример за подход, използващ собствена SQL заявка:
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
и т.н. Този подход може да бъде разширен до t4, t5, t6, ... до известен (разумен) краен брой нива.
За по-рекурсивен подход може да се напише съхранена в MySQL програма (PROCEDURE).