在LIB /瓦瑞恩/數據/收集/ db.php中有由所有的Magento類別繼承的方法getSelectCountSql()。在此方法中,Select對象被克隆,並準備專門用於獲取不加載集合的收集項目的COUNT值,而是使用輕量級Select選擇數據庫。getSelectCountSql()不進行復位組部分
準備工作是通過重置可能影響COUNT結果的選擇部分和部分來完成的。下面的代碼:
public function getSelectCountSql()
{
$this->_renderFilters();
$countSelect = clone $this->getSelect();
$countSelect->reset(Zend_Db_Select::ORDER);
$countSelect->reset(Zend_Db_Select::LIMIT_COUNT);
$countSelect->reset(Zend_Db_Select::LIMIT_OFFSET);
$countSelect->reset(Zend_Db_Select::COLUMNS);
...
我想知道,有沒有真正原因Magento的工程師不包括與其他部分一起$countSelect->reset(Zend_Db_Select::GROUP);
。
Magento似乎沒有解決這個問題,從修訂到修訂,我確信這是一個錯誤,所以也許我錯了?我很感激,如果有人可以解釋不包括背部的原因GROUP部分到復位部件列表。
PS這不是this question的重複,我知道如何添加修復程序,我只想得到一個解釋(如果存在)爲什麼Magento工程師從一開始就沒有做到這一點,並繼續忽略問題。
有趣的問題。我個人不認爲這是越野車,我想這取決於你想要達到的目標。如果我要創建具有樣式和顏色屬性的項目集合,並且我想要獨特的顏色(因此按顏色分組),我希望集合的數量是唯一顏色的數量,而不是總數我的表中的項目。 –
感謝您的迴應,@Cags - 這完全有道理,但這似乎更像是獨特的場景。更常見的情況是在entity_id字段上使用分組(或者調用增量的任何方法)以防止在連接多個表時出現重複條目。所以對我來說更重要的是爲了這個更經常的場景重置'group'以正確工作。但無論如何,你的觀點也很有說服力。 –