找到每行db-sql的最低值

时间:2013-06-29 16:27:44

标签: mysql sql

我有一张价格信息表如下图所示,我试图查询数据库给我回到'项目'和最便宜的供应商价值。

data base values

因此对于下表,它将是

  • bike,供应商3 - 120.43
  • shoe,供应商2 - 19.99
  • ball,供应商1 - 5.50

这可能与sql querys有关,还是需要输出所有值然后用php(或选择的语言)过滤它们?

2 个答案:

答案 0 :(得分:6)

使用LEAST()

select item, least(supplier1, supplier2, supplier3)
from your_table

答案 1 :(得分:1)

更改架构。

suppliers

supplier_id    supplier_name
1              Supplier 1
2              Supplier 2
3              Supplier 3

products

product_id     product_name
1              Bike
2              Shoe
3              Ball

prices

product_id     supplier_id     price
1              1               125.65
1              2               132.01
1              3               120.43
2              1               23.99
2              2               19.99
2              3               25.96
3              1               5.50
3              2               8.65
3              3               6.50

您的查询

SELECT product_name, supplier_name, price
FROM prices
INNER JOIN products ON products.product_id = prices.product_id
INNER JOIN suppliers ON suppliers.supplier_id = prices.supplier_id
GROUP BY prices.product_id
HAVING price = MIN(prices.price)