По некоторым предложениям я использовал атрибут GROUP BY, и следующий запрос работает правильно, если я хочу наименьшую цену на продажу для определенного продукта:
SELECT p.*, MIN(pp.sellPrice) AS sellPrice, pp.quantity, pp.`priceGroupId`
FROM `product` AS p
LEFT JOIN `product_price_group` AS ppg ON ppg.productId = p.`id`
LEFT JOIN `product_price` AS pp ON pp.priceGroupId = ppg.`id`
WHERE p.`active` = 1 AND p.id = 1 AND pp.sellPrice IS NOT NULL
GROUP BY pp.id;
Для всех продуктов:
SELECT p.*, MIN(pp.sellPrice) AS sellPrice, pp.quantity, pp.`priceGroupId`
FROM `product` AS p
LEFT JOIN `product_price_group` AS ppg ON ppg.productId = p.`id`
LEFT JOIN `product_price` AS pp ON pp.priceGroupId = ppg.`id`
WHERE p.`active` = 1 AND pp.sellPrice IS NOT NULL
GROUP BY pp.id;