In my magento store I am trying to retrieve a list of youtube videos from a DB table, some videos are duplicated.
I'm looking to filter videos by using distinct video "value" but can't seam to find any information about using distinct with addFieldToFilter()
// get video collection
$collection = Mage::getModel('video/video')->getCollection();
$collection->addFieldToFilter('provider', 'youtube');
// filter by video value
$collection->addFieldToFilter('value')->distinct(true);
By removing $collection->addFieldToFilter('value')->distinct(true);
it works, but retrieves all the videos.
While adding the join make sure blank array is passed in the third parameter.
$this->getSelect()->joinLeft(
'sales_order_item',
'sales_order_item.order_id = main_table.order_id',
[]
);
After that add the following to apply DISTINCT
$this->getSelect()->distinct(true);
You can try this:
$collection->getSelect()->distinct(true);
But this will retrieve distinct values based on id. If you want to retrieve videos using distinct video values, you should group by "value".
$collection->getSelect()->group('value');
If you want to debug the query executed :
$collection->getSelect()->__toString();
Hope this helps
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With