Sí, es posible usar un modelo de conjunto anidado. Hay un libro de Joe Celko que lo describe, pero si quieres entrar directamente, hay un artículo eso habla de eso. Tanto los datos recopilados que necesita se pueden recuperar con una sola declaración de selección como esta:
SELECT * FROM TableB where left > some_value1 and right < some_value2
En el ejemplo anterior, para obtener todos los nodos secundarios de "Electrónica portátil", la consulta será:
SELECT * FROM Electronics WHERE `left` > 10 and `right` < 19
El artículo describe cómo deben inicializarse las columnas izquierda y derecha.