O
WITH RECURSIVE
declaração/método é aplicável no PostgreSQL e Sybase (e talvez mais alguns, eu acho), então talvez você possa olhar para isso:http://www.artfulsoftware.com/mysqlbook/sampler/mysqled1ch20.html
Ele deve mostrar algumas abordagens usando MySQL (e uma ou duas em PHP, só para mencionar - eu sei que não está na sua lista de tags)