I want to get a product collection with products in Category A or Category B. I have been able to succesfully get these products with the following php-code:
$collection = Mage::getModel('catalog/product')
->getCollection()
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left')
->addAttributeToFilter('category_id', array('in' => array('finset' => 4,19)))
->addAttributeToSelect('*');
However, if the product is in both category 4 AND 19, then an error is displayed:
Item (Mage_Catalog_Model_Product) with the same id "173" already exist
This is because the collection has a duplicate row in it. I'm struggling to find the right code to filter out any duplicate rows in the collection. The solution must be to group the values, or use distinct, but I'm not sure how to go forth.
See also Filter Magento collection but not products, using distinct
$collection->distinct(true);
– Orbadiah