Veja Gerenciando dados hierárquicos no MySQL , especificamente a seção chamada "Modelo de conjunto aninhado". Você pode ter que ler algumas vezes antes que faça sentido (eu fiz), mas vale a pena. É uma maneira muito poderosa de trabalhar com dados aninhados e recuperar as partes desejadas com apenas uma consulta.
No lado negativo, para atualizações, você precisa fazer muito mais trabalho.