Left Join查询以正确的价格返回错误的行ID

时间:2016-03-15 08:39:06

标签: php mysql

我尝试使用category_id的左连接查询来获取最低价格。查询返回正确price但不同product_id

我有两个表,一个是product,另一个是product_to_category(用于关系)。我尝试使用以下查询来获取具有最低价格的product_idprice

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, 7167的价格为871的价格为15,因此根据MIN(),它应返回包含price的{​​{1}}的行product_id但是上面的查询给出了我与product_id 71不同的最低价格。我还附上了您可以轻松理解的表格和结果屏幕截图。 表oc_product_to_category

enter image description here

表oc_product enter image description here

查询结果

enter image description here

任何人都可以让我知道我哪里错了。我会很感激。感谢

1 个答案:

答案 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