Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/07/2008, 05:15
Avatar de gnzsoloyo
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: precio más pequeño de cada producto

No estás haciendo la consulta correctamente.
El SELECT debe definir QUE te muestra, y COMO te los muestra. SI lo que quieres es el menor precio de un producto, eso es el QUE. cuando pones HAVING le estás diciendo que tenga el menor ID (suponiendo que pro.id y pre.producto tienen el mismo dato), no el menor precio.
En estos casos no sirve poner SELECT * porque no puedes definir nada sobre ningún campo de la tabla y estás tratando de definir el menor. Hay que listar por nombre los campos que vas a visualizar.
Además SELECT * FROM es lo más ineficiente, porque te va a trae incluso datos que no vayas a usar, recargando la lectura inutilmente.
La cosa andaría (sin saber los nombres de los campos):
Código:
SELECT pri.id, pro.desc, pro.cant, MIN(pre.precio) precio
FROM Productos as pro INNER JOIN precios as pre ON pro.id = pre.producto
GROUP BY pri.id;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)