Posiadam tabelę z samozłączeniem posiada dwie kolumny - ID oraz ROOT
jest to struktura drzewa w bazie danych

Napisałem procedurę składowaną, która przyjmie ID i ma zwrócić wszystkie nadrzędne rekordy w bazie danych
Odwołałem się w zapytaniu do samego CTE rekurencyjnie jednak procedura da się wykonać, jednak nic się nie dzieje.

Wiem, że MySQL to nie MSSQL lecz czy można się odwołać w CTE samo do siebie?
Wzorowałem się na: https://blog.zajonc.pl/dwa-spojrzenia-na-rekurencje-w-t-sql/
Problem został rozwiązany jednak implementacja jest zbyt złożona
https://stackoverflow.com/questions/3812621/handling-tree-in-a-mysql-procedure
Cała implementacja drzewa jest w
http://moinne.com/blog/ronald/mysql/manage-hierarchical-data-with-mysql-stored-procedures

CREATE TABLE `articles_categories`
(
	`id` int(11) NOT NULL AUTO_INCREMENT,
    `root` int(11),
    PRIMARY KEY(`id`),
    FOREIGN KEY (`root`) REFERENCES `articles_categories`(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `articles_categories`(`id`,`root`) VALUES
(1,NULL),
(2,NULL),
(3,NULL),
(4,NULL),
(5,3);

DROP PROCEDURE IF EXISTS `get_category_tree`;
DELIMITER $$
create procedure `get_category_tree`(IN `id_input` INT(11))
BEGIN
	WITH `CT0` as
	(
		select  `id`, `root`, 0 as `level`
		from `articles_categories`
		where `id`= `id_input`
			UNION ALL
		select  `articles_categories`.`id`, `articles_categories`.`root`, (`level`+1) as `level`
		from `articles_categories` as `p`
		join `CT0` on `CT0`.`root`=`articles_categories`.`id`
	)
	select * from `CT0`;
END $$