WITH RECURSIVE LabelHierarchy AS (
SELECT id, name, parent_id
FROM labels
WHERE id = ${labelId}
UNION ALL
SELECT l.id, l.name, l.parent_id
FROM labels l
INNER JOIN LabelHierarchy lh ON lh.id = l.parent_id
)
SELECT e.id, e.exercise_name
FROM exercises e
INNER JOIN exercise_label el ON e.id = el.exercise_id
INNER JOIN LabelHierarchy lh ON el.label_id = lh.id;
WITH RECURSIVE LabelHierarchy AS (
SELECT id, name, parent_id
FROM labels
WHERE id = ${labelId}
UNION ALL
SELECT l.id, l.name, l.parent_id
FROM labels l
INNER JOIN LabelHierarchy lh ON lh.id = l.parent_id
)
SELECT e.id, e.exercise_name
FROM exercises e
INNER JOIN exercise_label el ON e.id = el.exercise_id
INNER JOIN LabelHierarchy lh ON el.label_id = lh.id;