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

Consulta sql agrupar resultados correctamente

Estas en el tema de Consulta sql agrupar resultados correctamente en el foro de Mysql en Foros del Web. Buenas, Tengo un problema con una consulta sql que se me resiste que da gusto, no consigo agrupar los resultados que me muestra. La finalidad ...
  #1 (permalink)  
Antiguo 07/10/2012, 07:11
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Consulta sql agrupar resultados correctamente

Buenas,

Tengo un problema con una consulta sql que se me resiste que da gusto, no consigo agrupar los resultados que me muestra.

La finalidad es que a partir de un user_id consigo la lista de amigos del usuario con datos sobre el amigo, cada fila equivale a un producto que guardó como favorito.

Tan solo quiero que me agrupe/sume el total de productos favoritos de mis amigos.

En el siguiente ejemplo debería mostrar que
2 | Darucilla | avatar.... | 4
7 | Raul | avatar.... | 3
6| Dperez | avatar.... | 1

Código SQL:
Ver original
  1. SELECT DISTINCT usuarios.user_id, apodo, avatar,  favorito_id
  2.                     FROM usuarios
  3.                     INNER JOIN usuarios_info ON usuarios.user_id = usuarios_info.user_id
  4.                     INNER JOIN favoritos ON usuarios.user_id = favoritos.user_id
  5.                     INNER JOIN amigos ON usuarios.user_id = amigos.user_id
  6.                     WHERE amigos.user_id IN (SELECT amigo_id FROM amigos WHERE user_id = 1 AND estado='es_amigo')



Pero no consigo mediante group by y contanto elementos conseguirlo, pues lo mas cercano es esto pero me cuenta más favoritos de la cuenta



Me lleva a preguntarme si lo que intento hacer se puede hacer? estoy haciendo algo mal?

Muchas gracias por adelantado
  #2 (permalink)  
Antiguo 07/10/2012, 07:25
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Consulta sql agrupar resultados correctamente

No me preguntes como lo he hecho pero me funcionó

Código SQL:
Ver original
  1. SELECT favoritos.user_id, apodo, avatar, COUNT(favoritos.user_id) AS wishlist FROM favoritos
  2. INNER JOIN usuarios ON usuarios.user_id = favoritos.user_id
  3. INNER JOIN usuarios_info ON usuarios.user_id = usuarios_info.user_id
  4. WHERE favoritos.user_id IN (SELECT amigo_id FROM amigos_vista WHERE user_id = 1)
  5. GROUP BY favoritos.user_id

Gracias :D

Etiquetas: agrupar, correctamente, join, resultados, select, sql
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 18:11.