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

Mostrar registros con group by

Estas en el tema de Mostrar registros con group by en el foro de Mysql en Foros del Web. Hola Amigos!!! estoy tratando de hacer lo siguiente tengo una tabla con estos registros id numero compra 2 45 71 3 75 88 2 85 ...
  #1 (permalink)  
Antiguo 18/08/2011, 07:05
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 7 meses
Puntos: 4
Mostrar registros con group by

Hola Amigos!!!
estoy tratando de hacer lo siguiente
tengo una tabla con estos registros
id numero compra
2 45 71
3 75 88
2 85 25
1 96 115
2 24 23
lo que necesito es mostrar por medio de la consulta todos los registros de numero y compra que pertenezcan al id 2 por ejemplo
2 45 71
85 88
24 23
lo estoy haciendo con esta consulta
Código MySQL:
Ver original
  1. SELECT * FROM compras  LEFT OUTER JOIN proveedores ON compras.id = proveedores.proveedor_id
  2.                                          LEFT OUTER JOIN monedas ON compras.compra_moneda = monedas.mone_id GROUP BY id
  3.                                          ORDER BY id asc  LIMIT 0, 1
les voy a agradecer cualquier ayuda que me puedadn brindar
Saludos!!!
  #2 (permalink)  
Antiguo 18/08/2011, 07:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Mostrar registros con group by

Para eso no se usa GROUP BY. El GROUP BY acumula los resultados de una consulta en base al valor de uno o más campos indicados, pero lo que hace es devolver sólo un registro por cada valor diferente de esa condición, no seleccionar un conjunto para ser mostrado.
Lo que cumple lo que necesitas es el WHERE.
Código MySQL:
Ver original
  1. FROM compras C
  2.     INNER JOIN proveedores P ON C.id = P.proveedor_id
  3.     INNER JOIN monedas M ON C.compra_moneda = M.mone_id
  4. WHERE C.id = 2
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 18/08/2011, 08:05
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 7 meses
Puntos: 4
Respuesta: Mostrar registros con group by

Hola !!!
gracias por responder
lo que estoy haciendo es una paginacion con un solo resultado por consulta
entonces como tendria que hacer la consulta para que me traiga por ejemplo
en pagina 1.
2 | 45 71
| 85 88
| 24 23
en pagina 2
3 | 75 88
en pagina 3
1 | 96 115
etc
MUchas gracias
  #4 (permalink)  
Antiguo 18/08/2011, 08:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Mostrar registros con group by

Bueno, técnicamente deberías hacer consultas separadas para cada condición. De lo contrario sólo te quedaría manejarlo por programación.
Una forma de saber cuántos grupos y páginas tienes que leer sería hacer una consulta previa que te devuelva la cantidad de IDs diferentes de la tabla compras, y con ese array de datos hacer toda la secuencia de consultas, o una consulta ordenada por Compras.ID y luego crear las paginas a medida que lees los registros devueltos por la misma.
En cualquier caso tienes más para resolver en el programa que en la consulta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 18/08/2011, 08:38
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 7 meses
Puntos: 4
Respuesta: Mostrar registros con group by

Exactamente eso es lo que necesito hacer!!!
pero es un tema de php al mostrar los registros voy a preguntar al foro correspondiente
Saludos y muchas gracias

Etiquetas: group, join, registros, select, tabla
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 12:13.