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

que metodo usar para este query?

Estas en el tema de que metodo usar para este query? en el foro de Mysql en Foros del Web. Tengo 2 tablas: "Clientes" y "Cuentas" me funciona bien cuando devuelvo datos de clientes; como "nombre, apellido, telefono, etc..." pero al lado del nombre quiero ...
  #1 (permalink)  
Antiguo 22/10/2012, 11:34
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 16
que metodo usar para este query?

Tengo 2 tablas: "Clientes" y "Cuentas" me funciona bien cuando devuelvo datos de clientes; como "nombre, apellido, telefono, etc..." pero al lado del nombre quiero mostrar la cantidad de cuentas que tiene cada cliente.

Osea quiero hacer un COUNT(cuentas) as total_cuentas. No se que metodo usar. LEFT JOIN? con GROUP BY?

esto es lo que hice pero algun error tengo.

Código MySQL:
Ver original
  1. SELECT customer_id, name, lastname, COUNT(cuentas.account_id) as atotal
  2. FROM clientes LEFT JOIN cuentas ON clientes.customer_id = cuentas.acustomer_id
  3. GROUP BY clientes.customer_id

Última edición por gnzsoloyo; 26/10/2012 a las 09:13 Razón: Etiqueta de codigo equivocada.
  #2 (permalink)  
Antiguo 22/10/2012, 11:54
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: que metodo usar para este query?

Hola eybel:

A qué te refieres con que tienes algún error??? la consulta te marca un error?, si es así deberías decirnos qué error es el que te está marcando... ¿la consulta no arroja el resultado que esperas? entonces deberías comenzar por decirnos qué es lo que está regresando y qué es lo que esperas obtener...

La verdad no veo nada de malo en tu consulta, tratando de inferir la estructura de tus tablas a partir de la consulta creo que tienes algo como esto:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM clientes;
  2. +-------------+------+----------+
  3. | customer_id | name | lastname |
  4. +-------------+------+----------+
  5. |           1 | uno  | one      |
  6. |           2 | dos  | two      |
  7. |           3 | tres | three    |
  8. +-------------+------+----------+
  9. 3 rows in set (0.00 sec)
  10.  
  11. mysql> SELECT * FROM cuentas;
  12. +------------+--------------+
  13. | account_id | acustomer_id |
  14. +------------+--------------+
  15. |          1 |            1 |
  16. |          2 |            1 |
  17. |          3 |            1 |
  18. |          4 |            3 |
  19. |          5 |            3 |
  20. +------------+--------------+
  21. 5 rows in set (0.00 sec)
  22.  
  23. mysql> SELECT customer_id, NAME, lastname, COUNT(cuentas.account_id) AS atotal
  24.     -> FROM clientes
  25.     -> LEFT JOIN cuentas ON clientes.customer_id = cuentas.acustomer_id
  26.     -> GROUP BY clientes.customer_id;
  27. +-------------+------+----------+--------+
  28. | customer_id | NAME | lastname | atotal |
  29. +-------------+------+----------+--------+
  30. |           1 | uno  | one      |      3 |
  31. |           2 | dos  | two      |      0 |
  32. |           3 | tres | three    |      2 |
  33. +-------------+------+----------+--------+
  34. 3 rows in set (0.00 sec)

en otras palabras el cliente 1 tiene tres cuentas y el cliente 3 tiene 2, el cliente 2 no tiene ninguna cuenta asignada... según lo que entendí esto es exactamente lo que quieres obtener no????

Si continuas con problemas postea la estructura de tus tablas y pon algunos datos de ejemplo para hacer pruebas.

Saludos
Leo.
  #3 (permalink)  
Antiguo 22/10/2012, 12:55
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 16
Respuesta: que metodo usar para este query?

Me volvi loco. Perdon pero el codigo esta bien y me funciona a la perfeccion. Tenia un error en otro lado. Gracias Leo por revisar!
  #4 (permalink)  
Antiguo 22/10/2012, 15:35
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: que metodo usar para este query?

Jejejejeje, suele suceder... a veces lo único que tienes que hacer para dar con error es descansar un poco.

Saludos
Leo.
  #5 (permalink)  
Antiguo 26/10/2012, 08:12
Avatar de antoniopol  
Fecha de Ingreso: agosto-2012
Ubicación: Valladolid
Mensajes: 114
Antigüedad: 12 años, 2 meses
Puntos: 21
Respuesta: que metodo usar para este query?

Como dice leonardo es mejor descansar, es como buscar un objeto perdido un buen tiempo y al día siguiente haciendo otra cosa lo encuentras...
__________________
>> Blog de desarrollo web.
>> @antoniopol06 amante de la Web =D
  #6 (permalink)  
Antiguo 26/10/2012, 11:58
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 16
Respuesta: que metodo usar para este query?

Si es verdad no habia casa nada mal, era algo muy simple, lo que me jugo en contra fue el cansancio jaja. saludos

Etiquetas: join, metodo, select, tabla, usar
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:03.