我有一个电子商务网站。在该网站上,我进行了查询,以根据价格获取所有产品,这有效:
SELECT DISTINCT pricing.product_id
FROM pricing INNER JOIN
product_categories
ON pricing.product_id=product_categories.product_id
WHERE product_categories.category_id='?'
ORDER BY pricing.base_price ASC
我遇到的问题是具有多个SKU或变体的产品。因此,在我的价格表中,在有变化的尽可能多的行中,会有相同的产品ID,并且每行都有自己的基本价格。
当一种产品的一种变体比通常价格更高的一种变体贵时,就会发生我的问题。
我想知道的是,是否有一种订购方式,所以不是按所有SKU的最低基本价格,而是按具有该产品ID的所有SKU的最低基本价格。
我希望这真的很难解释,对此的任何帮助或建议将不胜感激。
答案 0 :(得分:3)
使用GROUP BY
和MIN(base_price)
来获取每个SKU的最低价格,并以此顺序订购。
SELECT pricing.product_id
FROM pricing INNER JOIN
product_categories
ON pricing.product_id=product_categories.product_id
WHERE product_categories.category_id='?'
GROUP BY pricing.product_id
ORDER BY MIN(pricing.base_price) ASC