Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/11/2015, 23:16
davidc_10
 
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 13 años, 5 meses
Puntos: 0
Ordenar columnas con GROUP_CONCAT

Hola a todos, necesito hacer una consulta que contiene dos columnas agrupadas con GROUP_CONCAT y que una de ellas se ordene alfabeticamente, sin perder la relacion con la otra.

Me explico, la consulta es la siguiente:

SELECT ilug.id_lugar, GROUP_CONCAT(id_categoria SEPARATOR'>') as idnegocio, GROUP_CONCAT(descripcion SEPARATOR'>') as negocios from icat INNER JOIN ilug ON icat.id_lugar=ilug.id_lugar GROUP BY ID_LUGAR

Resultado:
Código:
id_lugar 	idnegocio 	negocios 	
1              2>3>5>7>10 	Informatica>Desarrollo>Ventas>Otros

Las columnas 2 y 3 tienen relacion, es decir el "idnegocio 2" corresponde a "Informatica", el "idnegocio 3" corresponde a Desarrollo, etc.

Resulta que quiero ordenar la columna negocios alfabeticamente, para ello en la columna negocios pongo la siguiente instruccion
Código:
 GROUP_CONCAT(descripcion ORDER BY descripcion ASC SEPARATOR'>' as negocios
AQUI ESTA EL PROBLEMA, ordena la columna adecuadamente el inconveniente es que se pierde la relacion del id, es decir si ordeno alfabeticamente la columna negocios queda algo asi:

Código:
id_lugar 	idnegocio 	negocios
1 	        2>3>5>7>10 	Desarrollo>Informatica>Otros>Ventas>.
Como se puede observar hay error, porque a Desarollo no le corresponde el id 2 si no que el 3, y tampoco a Otros el 7 su id correcto es el 10.

Existe alguna manera de ordenar la columna negocios y que al mismo tiempo tambien se reordene la columna idnegocio para no perder la relacion del id? Les agradeceria bastante me puedan dar alguna solucion posible, ya que he pasado mucho tiempo tratando solucionar este problema sin exito hasta el momento.