-
- ruudboy

-
Total Posts: 6
Joined: 2012-12-09
|
I tried the next one
$_productCollection = clone $this->getLoadedProductCollection(); $_productCollection->clear() ->getSelect() ->group('at_name_default.value');
This looks like it works because i group on the value of at_name_default (because reference is an attribute)
But i also have products with the same name.
These values are also in the value field.
So products with the same name are excluded also.
What i want is that `at_name_default`.`name` is unique but only when `at_name_default`.`attribute_id` = 179 (not 178 witch is the productname)
The query is:
SELECT `e`.*, `cat_index`.`position` AS `cat_index_position`, `price_index`.`price`, `price_index`.`tax_class_id`, `price_index`.`final_price`, IF(price_index.tier_price IS NOT NULL, LEAST(price_index.min_price, price_index.tier_price), price_index.min_price) AS `minimal_price`, `price_index`.`min_price`, `price_index`.`max_price`, `price_index`.`tier_price`, IF(at_name.value_id > 0, at_name.value, at_name_default.value) AS `name` FROM `catalog_product_entity` AS `e` INNER JOIN `catalog_category_product_index` AS `cat_index` ON cat_index.product_id=e.entity_id AND cat_index.store_id=2 AND cat_index.visibility IN(2, 4) AND cat_index.category_id='401' INNER JOIN `catalog_product_index_price` AS `price_index` ON price_index.entity_id = e.entity_id AND price_index.website_id = '2' AND price_index.customer_group_id = 0 LEFT JOIN `catalog_product_entity_varchar` AS `at_name_default` ON (`at_name_default`.`entity_id` = `e`.`entity_id`) AND (`at_name_default`.`attribute_id` = '63') AND `at_name_default`.`store_id` = 0 LEFT JOIN `catalog_product_entity_varchar` AS `at_name` ON (`at_name`.`entity_id` = `e`.`entity_id`) AND (`at_name`.`attribute_id` = '63') AND (`at_name`.`store_id` = 2) GROUP BY `at_name_default`.`value` ORDER BY `name` asc LIMIT 20
|