Рекурсивное удаление подзадач?
Если это sql, то может просто использовать каскадное удаление!?
Зависит от БД. Гуглить Recursive CTE(Common Table Expressions).
В целом SQL выглядит примерно такwith recursive cte (id, name, parent_id) as
(
 select     id,
            name,
            parent_id
 from       products
 where      parent_id = 19
 union all
 select     p.id,
            p.name,
            p.parent_id
 from       products p
 inner join cte
         on p.parent_id = cte.id
)
select * from cte;