Пишу примерно сделующее, но понимаю что выполняется все равно всего один раз.
inCategoryId — входная переменная процедуры
BEGIN
DECLARE cpi INT;
SET cpi = inCategoryId;
WHILE cpi > 0 DO
SELECT category_id
FROM category
WHERE category_id = cpi;
SET cpi = cpi - 1;
END WHILE;
END
В целом если упростить, то надо следующее — имеется входная цифра(номер категории), она может быть потомком какой либо категории, которая может тоже быть чьим либо потомком и так до бесконечности.
Хочу что бы из всех этих категорий выбиралось допустим по паре товаров — при этом уровень вложенности неизвестен, может быть и корневая.