我尝试使用category_id
的左连接查询来获取最低价格。查询返回正确price
但不同product_id
。
我有两个表,一个是product
,另一个是product_to_category
(用于关系)。我尝试使用以下查询来获取具有最低价格的product_id
和price
。
SELECT p.product_id, MIN(p.`price`) FROM oc_product_to_category AS pc
LEFT JOIN oc_product AS p ON pc.`product_id`=p.`product_id` WHERE pc.`category_id` = 59
但是上面的查询给出了错误的结果,因为category_id=59
包含三个product_id 67, 68, 71
。 67
的价格为8
而71
的价格为15
,因此根据MIN()
,它应返回包含price
的{{1}}的行product_id
但是上面的查询给出了我与product_id
71
不同的最低价格。我还附上了您可以轻松理解的表格和结果屏幕截图。
表oc_product_to_category
查询结果
任何人都可以让我知道我哪里错了。我会很感激。感谢
答案 0 :(得分:2)
MIN
不会那样工作。您可以尝试ORDER
& ' LIMIT&#39 ;.试试 -
SELECT p.product_id, p.`price`
FROM oc_product_to_category AS pc
LEFT JOIN oc_product AS p ON pc.`product_id`=p.`product_id`
WHERE pc.`category_id` = 59
ORDER BY p.`price` ASC
LIMIT 1