Hola josegaitan123,
Yo he visto hacer eso con una tabla auxiliar "upline" con tantos campos como niveles, algo así:
Código SQL:
Ver originalCREATE TABLE `upline` (
`id` INT(11) NOT NULL DEFAULT '0' COMMENT 'Id del usuario',
`u1` INT(11) NOT NULL DEFAULT '0' COMMENT 'Id del upline inmediato anterior',
`u2` INT(11) NOT NULL DEFAULT '0' COMMENT 'Id del segundo upline inmediato anterior',
`u3` INT(11) NOT NULL DEFAULT '0' COMMENT 'Id del tercer upline inmediato anterior',
`ds` INT(11) NOT NULL DEFAULT '0' COMMENT 'Id del sponsor directo',
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci
Es de un sistema que compre hecho en Perl hace muchos años, pero funciona, así que aunque sea antiguo, tal vez te sirva...