Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/11/2018, 06:05
atribis
 
Fecha de Ingreso: abril-2006
Ubicación: De vuelta en Asturias
Mensajes: 209
Antigüedad: 18 años
Puntos: 1
Pregunta Ordenar por un campo y agrupar por otro pero mostrando todos los registros

Muy buenas!

Tengo una tabla donde guardo de manera muy simple todos los datos de una serie de productos.

Simplificando la estructura a lo básico sería algo así:

c_products
-------------
id
tienda
nombre producto
precio
categoría
otros datos...

La idea es guardar los precios de distintos producto en distintas tiendas y poder consultarlos para comparar. Un mismo producto, tiene un mismo id.

Por ejemplo (simplifico poniendo todos de la misma categoría):

1 - Día - Arroz SOS - 1.60 - Cereales...
2 - Día - Arroz DIA - 0.65 - Cereales...
1 - Mercadona - Arroz SOS - 1.57 - Cereales ...
3 - Mercadona - Arroz Brillante - 1.55 - Cereales...
3 - Alcampo - Arroz Brillante - 1.55 - Cereales...
1 - Alcampo - Arroz SOS - 1.52 - Cereales...

El problema que tengo es al recuperar los datos y ordenarlos por precio más barato, por ejemplo. Quiero que tenga en cuenta el precio más bajo de cada producto y a continuación muestre los que tengan el mismo id aunque sean más caros. Algo así como usar Group By, pero que se muestre cada registro. Algo así:

2 - Día - Arroz Día - 0,65 ...

1 - Alcampo - Arroz SOS - 1.52 ...
1 - Mercadona - Arroz SOS - 1.57 ...
1 - Día - Arroz SOS - 1.60 ...

3 - Mercadona - Arroz Brillante - 1.55 ...
3 - Alcampo - Arroz Brillante - 1.55 ...


Un segundo problema es al intentar mostrarlos paginados. Con la clausula limit contabiliza cada registro, y no cada id distinto.
Es decir, en el listado anterior, limit 5 mostraría hasta "3 - Mercadona", cuando en realidad sólo se están mostrando 3 productos distintos.

Los datos luego se muestran a través de PHP, pero no sé como armar la consulta para recuperarlos correctamente.
¿Alguna idea?

Muchas gracias por adelantado.