0

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

数据库值

所以对于下表,它将是

  • 自行车,供应商 3 - 120.43
  • 鞋,供应商 2 - 19.99
  • 球,供应商 1 - 5.50

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

4

2 回答 2

6

Use LEAST()

select item, least(supplier1, supplier2, supplier3)
from your_table
于 2013-06-29T16:29:30.123 回答
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)
于 2013-06-29T16:37:11.940 回答