SELECT term.term, term.mptt_left, term.mptt_right, COUNT(*) as depth, (SELECT COUNT(*)+1 FROM {terms} as t1 INNER JOIN {terms} as t2 ON t1.mptt_left BETWEEN t2.mptt_left AND t2.mptt_right WHERE t1.term = @myterm) as child_depth FROM {terms} as term INNER JOIN {terms} as t2 ON term.mptt_left BETWEEN t2.mptt_left AND t2.mptt_right GROUP BY term.term HAVING term.mptt_left BETWEEN @myterm_left+1 AND @myterm_right-1 AND depth = child_depth ORDER BY NULL;