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

ayuda con query

Estas en el tema de ayuda con query en el foro de Mysql en Foros del Web. Hola que tal a todos, mi problema es este he intentado un query pero no me queda, tengo 2 tablas usuarios y soporte en soporte ...
  #1 (permalink)  
Antiguo 21/02/2011, 09:31
 
Fecha de Ingreso: junio-2008
Mensajes: 44
Antigüedad: 16 años, 4 meses
Puntos: 2
ayuda con query

Hola que tal a todos,

mi problema es este he intentado un query pero no me queda, tengo 2 tablas usuarios y soporte

en soporte mis registros son asi

id_s - id_u_p - nom_s
--------------------------
1 - 23 - nombre 1
2 - 22 - nombre 2
3 - 23 - nombre 3
4 - 21 - nombre 4

y el id_u_p es el id_usuario en usuarios

id_u nom_u
--------------------------
1 - nombre user 1
23 - nombre user 2
22 - nombre user 3
4 - nombre user 4


entonces lo que quiero es sacar en un query el total de soportes para cada usuario y sus datos del usuario, intente con un inner join pero me saca todos los soportes y lo que me gustaria es algo asi

id_u total_soportes nombre
-------------------------------------
23 - 2 - nombre 1
22 - 1 - nombre 2
21 - 1 - nombre 3


esto posible con un select anidado o con una subconsulta? o como se puede hacer? espero me puedan ayudar gracias, y si tienen una liga de algun tutorial para mysql intermedio tambien gracias
  #2 (permalink)  
Antiguo 21/02/2011, 09:41
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 9 meses
Puntos: 89
Respuesta: ayuda con query

¿Que nombre quieres que te saque el usuario 23? Porque dices que tiene dos (nombre 1 y nombre 3) pero en la query ejemplo unicamente pones el nombre 1.

¿Que nombre quieres que te saque el usuario 21? Porque tiene uno (nombre 4), pero en tu ejemplo aparece nombre 3
  #3 (permalink)  
Antiguo 21/02/2011, 09:48
 
Fecha de Ingreso: junio-2008
Mensajes: 44
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: ayuda con query

el nombre 1,2,3,4 son nombres del soporte, entonces lo que quiero es sacar el total de soportes por usuarios y los datos del usuario, osea

el usuario "x" tiene "2" soportes en la tabla de soportes y cuales son los datos de ese usuario nose si me explico

y en el ejemplo de la ultima tabla el nombre deberia de ser el nombre del usuario asi:

id_u - total_soportes - nombre_usuario
---------------------------------------
23- 2 - Jose Luis
22- 1 - Pedro
2- 1 - Alberto
  #4 (permalink)  
Antiguo 21/02/2011, 10:41
 
Fecha de Ingreso: junio-2008
Mensajes: 44
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: ayuda con query

ya tengo esto con este query, solo que como cambio el que me aga el concat de los nombres de los soportes por un count

Código:
SELECT id_u_p, group_concat(nombre_soporte separator " + ") totales, nombre 
FROM soportes 
INNER JOIN usuarios ON id_u = id_u_p GROUP BY id_u_p;

.
y me da de resultado esto

id_u_p - totales - nombre
-------------------------------------------
23- nombre soporte 1 + nombre soporte 2 - jose luis
etc
etc

y entonces en vez de que me el nombre de lo soportes solo que me ponga el total para que sea asi:

id_u_p - totales - nombre
-------------------------------------------
23- 2 - jose luis
etc
etc
  #5 (permalink)  
Antiguo 21/02/2011, 10:46
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 9 meses
Puntos: 89
Respuesta: ayuda con query

Código SQL:
Ver original
  1. SELECT id_u, nombre, COUNT(*)
  2. FROM soportes
  3. INNER JOIN usuarios ON id_u = id_u_p
  4. GROUP BY id_u, nombre
  #6 (permalink)  
Antiguo 21/02/2011, 11:00
 
Fecha de Ingreso: junio-2008
Mensajes: 44
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: ayuda con query

muchas gracias man eso funciono perfecto y ya solo le agrege un where de estatus = 0 y quedo de maravilla

gracias por la ayuda

Etiquetas: query
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 13:21.