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

Devolver el id del producto que tenga el menor precio

Estas en el tema de Devolver el id del producto que tenga el menor precio en el foro de Mysql en Foros del Web. Hola. Quiero obtener un recordset como el siguiente: ------------------------------ | ProductId | Min(Price) | ------------------------------ | 45281 | 45.23 | ------------------------------ La consulta Select Min(Price) ...
  #1 (permalink)  
Antiguo 01/09/2009, 11:06
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 1 mes
Puntos: 9
Devolver el id del producto que tenga el menor precio

Hola. Quiero obtener un recordset como el siguiente:

------------------------------
| ProductId | Min(Price) |
------------------------------
| 45281 | 45.23 |
------------------------------

La consulta Select Min(Price) From Products me arroja solo el mínimo. Si hago Select ProductId, Min(Price) From Products Group By ProductId, me arroja todas las filas de la tabla.
Sé que Ejecutando la primer consulta y guardando el valor devuelvo en la variable $min y después ejecutar una nueva consulta Select ProductId From Products Where Price = $min, podría obtener lo que busco, pero me gustaría saber si existe alguna forma de hacerlo con una sola consulta.

Gracias.
Saludos.
__________________
Add, never Remove
  #2 (permalink)  
Antiguo 01/09/2009, 11:29
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Devolver el id del producto que tenga el menor precio

con subconsulta:
SELECT Productid FROM tabla WHERE price = (SELECT min(price) from tabla)
  #3 (permalink)  
Antiguo 01/09/2009, 11:49
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 1 mes
Puntos: 9
Respuesta: Devolver el id del producto que tenga el menor precio

Me gusto esa. También pensé en esta otra:

Select ProductId, Price From Products Order By Price Asc Limit 0, 1

¿Cuál ves que sería más eficiente?.
__________________
Add, never Remove
  #4 (permalink)  
Antiguo 01/09/2009, 12:27
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Devolver el id del producto que tenga el menor precio

Más eficiente es la tuya, pero encubre datos, pues si varios productos tienen el máximo (por ej. 2 o más id), sólo te mostrará 1, el primero de los almacenados. No uses esa, mariano_donati; podrías emplear otra con INNER JOIN:
SELECT Productid FROM tabla INNER JOIN (SELECT min(price) maximo from tabla)t1 ON tabla.price = t1.maximo

Quizás esta sea más eficiente, y te ofrecerá el mismo resultado que la que te propuse. La tuya no te servirá bien, como te digo.

Última edición por jurena; 01/09/2009 a las 14:54
  #5 (permalink)  
Antiguo 01/09/2009, 14:17
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 1 mes
Puntos: 9
Respuesta: Devolver el id del producto que tenga el menor precio

Tenés Razón. Voy a probar con ambas soluciones y ver con cuál obtengo mejor performance.
Gracias!.
__________________
Add, never Remove
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 04:41.