Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/03/2018, 21:36
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Consulta interna con group_concat no hace funcionar consulta externa

Saludo

El día de hoy estaba realizando un query, el cual es algo extenso,
pero uno de los campos es una subconsulta,
la cual a su vez hace un IN resultado de una consulta que hace GROUP_CONCAT

Código MySQL:
Ver original
  1. (
  2. SELECT GROUP_CONCAT(name) FROM table1 WHERE id IN
  3. ( -- 1,2
  4.     (
  5.         SELECT GROUP_CONCAT(t2.user_receiver_id)
  6.         FROM table2 t2
  7.         WHERE t2.t1_id = t.id
  8.         AND t2.type = 'two'
  9.     )
  10. )
  11. ) user1

Notese que la tabla del campo t.id no esta en este fragmento,
esto es porque la tabla t es de la consulta principal que es más extensa.

Ahora bien, si ejecuto solo el SELECT GROUP_CONCAT interno
(es decir, el que busca en table2) trae bien los resultados que son: 1,2

Hasta aquí no hay problema.
El asunto es cuando se une al SELECT GROUP_CONCAT externo
(es decir, el que busca en table1)
Aquí solo trae un resultado (En este caso, el name del id 1, pero no el 2)

(nombre1)

Si en cambio hago la consulta de este modo

Código MySQL:
Ver original
  1. (
  2. SELECT GROUP_CONCAT(name) FROM table1 WHERE id IN
  3. (
  4. 1,2
  5. )
  6. ) user1

Trae correctamente toda la información.
(nombre1,nombre2)

He intentado agregar el SEPARATOR en el GROUP_CONCAT
pensando que era tema del separador o algo así,
pero persiste el asunto.

¿Alguien tiene otra idea acerca de esto, o debo cambiar algo en el query?

Incluso, si tal vez se les ocurre otra forma de hacerlo que funcione
si es que el tema es restrictivo por algo en particular, lo agradecería.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Última edición por mortiprogramador; 08/03/2018 a las 21:59