Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Problema con select

Estas en el tema de Problema con select en el foro de Bases de Datos General en Foros del Web. Amigos les cuento, tengo la siguiente tabla: CREATE TABLE categoria_producto ( cat_pro_id int(11) NOT NULL auto_increment, cat_pro_nombre varchar(255) NOT NULL, cat_id_madre int(11) default NULL, cat_pro_nivel ...
  #1 (permalink)  
Antiguo 20/09/2007, 09:30
 
Fecha de Ingreso: abril-2005
Mensajes: 38
Antigüedad: 19 años, 7 meses
Puntos: 0
Problema con select

Amigos les cuento, tengo la siguiente tabla:

CREATE TABLE categoria_producto (
cat_pro_id int(11) NOT NULL auto_increment,
cat_pro_nombre varchar(255) NOT NULL,
cat_id_madre int(11) default NULL,
cat_pro_nivel tinyint(3) unsigned NOT NULL default '0'
PRIMARY KEY (cat_pro_id)
)

Les explico:
- cat_pro_id: guarda el id auto incremento
- cat_pro_nombre: guarda el nombre de la categoría
- cat_id_madre: guarda el id de la categoría madre. En este caso si tiene este valor quiere decir que corresponde a una sub-categoría.
- cat_pro_nivel: indica el nivel de categoría: 0 es categoría general, 1 sub-categoria, 2 sub-sub-categoria, etc.

Bueno lógicamente creo que está bien, el problema es cuando quiero hacer un select que traiga todas las categorías pero que las ordene por las categorías y sub-categorias en arbol como corresponde. No he podido armar un select que haga esto, ni haciendo group by, ni order by, no se me ocurre!

Alguien me puede ayudar, por lo menos a echar una mano de como podría ser la lógica del select.

Muchas gracias
  #2 (permalink)  
Antiguo 21/09/2007, 05:39
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 9 meses
Puntos: 8
Re: Problema con select

Cargando el campo cat_id_madre de los registrso que corresponden a las categoría madre con su propi cat_pro_id y luego ordenando por cat_id_madre.
Ejemplo, si la categoria "electricidad" es madre y tiene un cat_pro_id de 12, ponle también un cat_id_madre de 12.

Luego haces un SELECT * FROM categoria_producto ORDER BY cat_id_madre, cat_pro_nivel.

No es muy ortodoxo pero funciona.
__________________
Kelpie
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:07.