[英]MySQL selecting MAX unique values
我有一个mysql表,其中显示了类似于以下内容的Sellers表:
advertiseid[pk] | customerid[fk] | productsid[fk] | quantites_advertised | price_advertised
------------------------------------------------------------------------------------------
1 2 2 4.00 2.00
2 4 3 5.00 2.50
3 3 2 1.00 1.00
第一条记录表示..这表示客户ID 2以4公斤的商品价格售出巧克力(产品ID为1)@ 2.00英镑
我想选择每个产品ID,以便查询显示不同产品的最小值:因此,该表将是:
advertiseid[pk] | customerid[fk] | productsid[fk] | quantites_advertised | price_advertised
------------------------------------------------------------------------------------------
2 4 3 5.00 2.50
3 3 2 1.00 1.00
该查询输出产品2和3的最低价格,因为产品3是唯一价格最低的产品,而产品2的最低价格在4.00和1.00之间为1.00,因此将其输出。 说我有各种不同的产品,我将如何实现这样的目标? 我已经尝试过此查询,但它是不正确的:
select c.Fname p.ProductName, s.ProductID, s.Quantity, s.Price
FROM sellers s, products p, customer c
WHERE s.Price = (select MIN(Price) FROM sellers WHERE
p.ID=s.ProductID AND c.ID=s.cid);
有人知道我如何实现预期的输出吗?
您可以使用过滤inner join
:
select *
from YourTable yt
join (
select productsid
, min(price_advertised) as min_price_advertised
from YourTable
group by
productsid
) filter
on filter.productsid = yt.productsid
and filter.min_price_advertised = yt.price_advertised
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.