SELECT p.product_id, MIN(p2s.price) AS min_price, (SELECT AVG(rating) AS total FROM review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '3' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '3' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM product p LEFT JOIN product_to_supplier p2s ON p2s.product_id=p.product_id WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.price>0 AND p2s.quantity>0 AND p.manufacturer_id = '5011' GROUP BY p.product_id ORDER BY p.sort_order ASC, LCASE(p.name) ASC LIMIT 0,15
Выбирать последний group_id и добавлять +1?