我有以下问题。我有2个表'产品'和'productprices'。每种产品都有多种价格,即ProductID 1,SizeID 1,Price 4.00 |产品ID 1,尺寸ID 2,价格5.50。
这是我目前的查询...
SELECT products.*,
productprices.Price
FROM products
INNER JOIN productprices ON products.ID = productprices.ProductID
WHERE products.Category='" . $categoryName . "'"
但我只想为每件产品以最低价格返回一条记录。
有人可以帮忙吗?
提前致谢。
答案 0 :(得分:1)
这可以通过产品价格的最低价格
自我加入productprices
来完成
SELECT p.*,
pp.*
FROM products p
INNER JOIN productprices pp ON p.ID = pp.ProductID
JOIN
( SELECT ProductID ,MIN(price) price
FROM productprices GROUP BY ProductID ) pp1
ON(pp.ProductID =pp1.ProductID AND pp.price = pp1.price)
WHERE p.Category='" . $categoryName . "'"
或者如果您不需要价格最低的productprices
整行,您可以在当前查询中使用MIN()
函数
SELECT p.*,
MIN(pp.Price) price
FROM products p
INNER JOIN productprices pp ON p.ID = pp.ProductID
WHERE p.Category='" . $categoryName . "'"
GROUP BY p.ID