我有一个 SQL 查询,它查看一些替代品的价格(由一些供应商提供),问题是我只需要那些以最低价格给我替代品的供应商。(它们可以是 1、2 或更多)
我有这个查询,然后我通过代码解析它,但是还有其他方法可以只用 SQL 来做我想要的吗?
select * from tprovider_treplacement where replacement_id = ? order by price asc
非常感谢☺</p>
我有一个 SQL 查询,它查看一些替代品的价格(由一些供应商提供),问题是我只需要那些以最低价格给我替代品的供应商。(它们可以是 1、2 或更多)
我有这个查询,然后我通过代码解析它,但是还有其他方法可以只用 SQL 来做我想要的吗?
select * from tprovider_treplacement where replacement_id = ? order by price asc
非常感谢☺</p>
你想要这样的东西吗?
select *
from tprovider_treplacement
where replacement_id = ? and
price = (select min(price)
from tprovider_treplacement
replacement_id = ?
)
这是标准 SQL。许多数据库也支持这种使用窗口函数的方法:
select *
from (select pr.*,
min(price) over (partition by replacement_id) as minprice
from tprovider_treplacement pr
where replacement_id = ?
) t
where price = minprice