我有一个mysql表,显示卖家表,如下所示:
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正在销售巧克力(产品ID 1),用于4KG的@£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);
任何人都知道如何实现我的预期输出?
答案 0 :(得分:0)
您可以使用过滤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