Ver Mensaje Individual
  #4  
Antiguo 09-07-2007
eugenioclrc eugenioclrc is offline
Registrado
 
Registrado: jul 2007
Posts: 3
Reputación: 0
eugenioclrc Va por buen camino
Question Mas dudas

Visto y considerando la respuesta mas que satisfactoria del ejemplo anterior, voy a atreverme a pedir ayuda nuevamente, pero con un caso mas definido.

Voy primero a describir el problema.

Digames que tengo una tabla llamada `Categorias`, y en ella hay dos campos, uno llamado `id`, que es de tipo int. Y otro llamado nombre que es un varchar.
Un ejemplo podria ser;

id,nombre
1,'Autos'
2,'Audi'
3,'Tuneado'
4,'0 Kilometro'
5,'Porsche'
6,'Motos'
7,'Honda'

Y tengo otra tabla, que relaciona estas categorias entre si, llamada `jerarquia`, que tiene un `id`, que es un int. Tiene un campo llamado `idcat` que es el numero que hace referencia a la tabla `Categorias`, otro campo llamado `idpadre` que tambien hacer referencia a la tabla `Categorias` y nos dice quien seria el padre de `idcat` (`idpadre` es 0 si no tiene padre, es decir es una categoria principal), y un ultimo campo que es llamado `hijos`, que dice si la categoria `idcat` tiene algun hijo. Al ejemplo anterior le corresponderian los siguientes valores;

id,idcat,idpadre,hijos
NULL,1,0,1
NULL,2,1,1
NULL,3,2,0
NULL,4,2,0
NULL,5,1,0
NULL,6,0,1
NULL,7,6,0

Por ultimo, tengo la tabla `productos`, que contiene un campo llamado `id`, un campo `nombre`, y por ultimo un campo llamado `cat`, que hace referencia a la tabla `Categorias`.`id`, cabe aclarar que siempre se va a referir a una categoria que no tenga hijos.
Un ejemplo seria;

id,nombre,cat
NULL,'Posche 911',5
NULL,'Audi c4 verde',4
NULL,'Audi Gris modelo 82',3
NULL,'Moto 0km',7

Ahora vamos con el problema, obtener todos los productos que sean de una categoria que no tiene hijos es facil, basta con hacer un simple where `cat` = categoriaquequeremos.
Pero que pasa si yo quisiera tener todos los que pertenecen a la categoria Autos por herencia de sus padres?


Saludos, y perdon por ser tan extenso, pero este tipo de problemas suelen necesitar una buena descripcion.
Gracias!!!
Responder Con Cita