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

Ordenar distintos campos unidos

Estas en el tema de Ordenar distintos campos unidos en el foro de Mysql en Foros del Web. Buenas: Mi problema es simple y a la vez complejo: Tengo una tabla que tiene dos campos llamados usr_id y usr_parent. El asunto es el ...
  #1 (permalink)  
Antiguo 20/10/2008, 14:04
 
Fecha de Ingreso: junio-2008
Mensajes: 15
Antigüedad: 15 años, 10 meses
Puntos: 0
Ordenar distintos campos unidos

Buenas:

Mi problema es simple y a la vez complejo: Tengo una tabla que tiene dos campos llamados usr_id y usr_parent. El asunto es el siguiente: hay padres e hijos en la base de datos. Todos tienen un usr_id, pero los padres tienen usr_parent=0 y los hijos tienen un usr_parent como el usr_id del padre, a parte de su propio usr_id. Me gustaria ordenar esta tabla de manera que fuera por orden de usr_id pero que a continuacion de cada usr_id padre vinieran los hijos de ese padre. Cuando terminaran esos hijos pues otro padre y despues otro hijo. Llevo dandole vueltas toda la tarde pero no lo saco, asi que agradeceria a quien fuese que me echara un cable :) y si es de Granada, le invito a una caña xD

Un saludo y gracias de antemano!
  #2 (permalink)  
Antiguo 20/10/2008, 19:02
Avatar de DjFaramir  
Fecha de Ingreso: febrero-2003
Ubicación: La Plata, Buenos Aires, Argentina
Mensajes: 131
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Ordenar distintos campos unidos

creo que eso lo vas a tener que manejar desde algun lenguaje de programacion... no se si un solo query podra hacer eso...
__________________
See you... y Tolkien... mucho Tolkien...
  #3 (permalink)  
Antiguo 20/10/2008, 19:40
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Ordenar distintos campos unidos

No entiendo muy bien lo que deseas
pero prueba esto

Select * from tu_tabla ORDER BY hijos, padres DESC;
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #4 (permalink)  
Antiguo 21/10/2008, 04:53
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Ordenar distintos campos unidos

Cita:
Iniciado por lhaian Ver Mensaje
Buenas:

Mi problema es simple y a la vez complejo: Tengo una tabla que tiene dos campos llamados usr_id y usr_parent. El asunto es el siguiente: hay padres e hijos en la base de datos. Todos tienen un usr_id, pero los padres tienen usr_parent=0 y los hijos tienen un usr_parent como el usr_id del padre, a parte de su propio usr_id. Me gustaria ordenar esta tabla de manera que fuera por orden de usr_id pero que a continuacion de cada usr_id padre vinieran los hijos de ese padre. Cuando terminaran esos hijos pues otro padre y despues otro hijo. Llevo dandole vueltas toda la tarde pero no lo saco, asi que agradeceria a quien fuese que me echara un cable :) y si es de Granada, le invito a una caña xD

Un saludo y gracias de antemano!
Lo que quieres hacer es posible, aunque te diré que lo que estás haciendo es un modelo jerárquico, y para eso deberás usar otra sintaxis. No obstante, para no meterte en el mundo del selfjoin (mira si quieres lo que dice el manual MySqL sobre modelos jerárquicos), te he buscado un atajo, una medio chapuza para resolverte tu problema y mostrar ese orden que quieres. Sería esta:
Código sql:
Ver original
  1. SELECT nombrecampo FROM nombretabla
  2. ORDER BY IF( usr_parent =0, usr_id, usr_parent ) , usr_parent

Usa para ordenar el campo usr_id si se trata de un padre; y usr_parent si se trata de un hijo; con eso reúnes padres e hijos; luego para ordenar al padre antes pones como segundo criterio de ordenación usr_parent, que es 0 en el caso del padre.

Pero eso sólo te permite ordenar por esos usr_parent y usr_id, no por el nombre de los padres y luego el de los hijos. Para eso, según creo, tendrías que recurrir a la sintaxis propia de los modelos jerárquicos.

Última edición por jurena; 22/10/2008 a las 07:31
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 01:34.