每当我使用sales / quote_item表加入reports / quote_collection时,我都会收到此错误。我正在尝试为未注册的用户创建一个废弃的购物车报告。我需要在废弃的购物车中显示所有商品。
请参阅以下代码:
$this->addFieldToFilter('items_count', array('neq' => '0'))
->addFieldToFilter('main_table.is_active', '1')
->addSubtotal($storeIds, $filter)
->setOrder('updated_at');
$this->getSelect()->joinInner(
array('quote_items' => $this->getTable('sales/quote_item')),
'quote_items.quote_id = main_table.entity_id',
'name');
if (is_array($storeIds) && !empty($storeIds)) {
$this->addFieldToFilter('store_id', array('in' => $storeIds));
}
return $this;
如何解决此错误?有没有办法显示所有项目?
答案 0 :(得分:2)
当Magento尝试将同一项目两次添加到集合时会出现此消息,因为JOIN查询结果多次包含它。
您可以通过主键上的GROUP BY避免这种情况,如下所示:
$collection->getSelect()->group('e.entity_id')