Comunidad de diseño web y desarrollo en internet online

Armar listado desde una query, como un detalle (Reporte)

Citar            
MensajeEscrito el 11 Dic 2012 06:42 pm
Buenas Tardes. Estoy realizando un reporte de inventarios, en los que tengo almacén y productos. Un Almacén tiene varios productos.

Almacenes
id | nombre |

Productos
id| nombre


almacenes_productos
id | almacen _id | producto_id

El incoveniente que tengo es al armar el listado en la pantalla, no sé bien cómo realizar el group by, o qué tengo que hacer, de forma tal que quede un listado prolijo, sin repetir campos en común de la tabla almacén.
Actualmente armando un join normal, me queda :

nombreAlmacen1 | producto1
nombreAlmacen1 | producto2
nombreAlmacen1 | producto3
nombreAlmacen2| producto1
nombreAlmacen2| producto2
nombreAlmacen2| producto3

La idea es que me quede algo así :

nombreAlmacen1 | producto1
| producto2
| producto3
nombreAlmacen2| producto1
| producto2
| producto3

Sé que lo puedo resolver con consultas anidadas, pero a términos de eficiencia es lentísimo, y se me hace inviable.


La query que hago es :

SELECT *
FROM almacenes a
INNER JOIN almacenes_productos ap ON a.id = ap.id
INNER JOIN productos p ON ap.producto_id = p.id;

Desde ya, muchas Gracias !

Por Arteniz

41 de clabLevel



Genero:Masculino  

Programador

firefox
Citar            
MensajeEscrito el 11 Dic 2012 08:33 pm
¿El lenguaje de host que estás usando es PHP?.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 11 Dic 2012 11:12 pm

DriverOp escribió:

¿El lenguaje de host que estás usando es PHP?.


Sí.
Pude encontrarle una vuelta desde php y ordenando , de forma tal que si el anterior es igual, no lo imprima. En el momento es lo que se me ocurrió para salir del paso de forma rápida, pero me gustaría encontrarle una forma mejor, si es posible desde el mismo MySQL .

Por Arteniz

41 de clabLevel



Genero:Masculino  

Programador

firefox
Citar            
MensajeEscrito el 12 Dic 2012 12:08 pm
Bien. La solución que has encontrado es la mejor.

Desde MySQL no puedes hacer lo que quieres porque en SQL no existe el concepto de registros heterogéneos.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.