mysql 连接表的最大和最小虚拟列值

qvsjd97n  于 12个月前  发布在  Mysql
关注(0)|答案(1)|浏览(310)

我有一个products表(id,name)和一个相关的products_prices表(id,product_id,value)。每个产品可以有多个价格。我试图做一个查询,将列出所有产品的最高和最低价格从所有现有的价格为每个产品,但没有运气。就像这样:
| id|姓名|价格最小值|价格最大值|
| - -----|- -----|- -----|- -----|
| 一个|产品1|一百|一千|
| 2|产品二|两百|二千年|
需要帮助...

svujldwt

svujldwt1#

可以使用group by和聚合函数min()max()来完成:

select p.id, p.name, min(value) as price_min, max(value) as price_max
from products p
inner join products_prices pr on pr.product_id = p.id
group by p.id, p.name

如果你想列出还没有价格的产品,你可以使用left join

select p.id, p.name, min(value) as price_min, max(value) as price_max
from products p
left join products_prices pr on pr.product_id = p.id
group by p.id, p.name

相关问题