好吧,我想获得最畅销的产品,但是当我想要获得它们时。它只会返回最畅销的产品,而不返回idventa,idproduct和说明。很好地返回这些值,但是它们属于其他值是错误的值。我需要有人帮助我纠正关于SQL的语句,因为我想返回正确的值,例如:idventa:7-idproducto:10,descripcion:IPHONE 4S,best_selling_product:5000,而不是不属于它们的其他值句子

SELECT
   idventa,idproducto,descripcion,MAX(venta_detalle.cantidad) AS best_selling_product
FROM venta_detalle
     INNER JOIN producto
     ON venta_detalle.idproducto = producto.id

最佳答案

在不知道表结构的情况下,很难猜测要查找的内容。有时,假设该字段存在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

关于mysql - 获得最畅销的产品,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35977026/

10-13 04:28