SELECT
idventa,idproducto,descripcion,MAX(venta_detalle.cantidad) AS best_selling_product
FROM venta_detalle
INNER JOIN producto
ON venta_detalle.idproducto = producto.id
答案 0 :(得分:0)
在不知道你的桌面结构的情况下,猜测你正在寻找什么有点困难。有时,如果该字段存在group by
值,则可以添加distinct
子句。
其他时候,您需要使用子查询中的聚合将表join
返回给自己:
select
p.idproducto,
p.descripcion,
vd.idventa,
vd.cantidad
from producto p
join venta_detalle vd on vd.idproducto = p.id
join (select idproducto, max(cantidad) best_selling_product
from venta_detalle
group by idproducto) vd2 on vd.idproducto = vd2.idproducto and
vd.cantidad = vd2.best_selling_product
答案 1 :(得分:0)
尽管max()将返回最高数字而没有分组,但它也会将结果集折叠为单个记录,但是,不能保证其他字段将来自与max相同的记录。我建议使用简单的order by和限制组合来获得具有最高值的记录:
SELECT
idventa,idproducto,descripcion, venta_detalle.cantidad AS best_selling_product
FROM venta_detalle
INNER JOIN producto
ON venta_detalle.idproducto = producto.id
ORDER BY venta_detalle.cantidad DESC
LIMIT 1