В сетке администратора модуля я использую этот код, чтобы получить коллекцию и сгруппировать их по идентификатору клиента
$collection = Mage::getModel('referafriend/statistics')->getCollection();
$collection->getSelect()->group('entity_id');
$this->setCollection($collection);
но здесь я должен использовать функции рендеринга и фильтрации для информации о клиенте, такие как имя и адрес электронной почты для каждого entity_id
. Я хочу присоединить модель клиента к таблице моего модуля. для этого я написал этот код
$collection = Mage::getModel('customer/customer')->getCollection()
->addNameToSelect();
$collection->getSelect()->join(array('refer' => 'table_name'),'refer.entity_id = e.entity_id'
);
$collection->getSelect()->group('entity_id');
$collection->addAttributeToSelect('*');
но это дает мне эту ошибку
SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'entity_id' in group statement is ambiguous
любая помощь будет высоко оценена.
e.
Ответы:
Вам нужно добавить имя таблицы в
group by condition
. Как вы сделалиnot added on conditions table name
в группе таблиц ('entity_id'), такquery did not find columns name
Логика это:
источник
$collection = $object_manager->create('\Magento\Sales\Model\Order\Item')->getCollection(); $collection->getSelect()->join( ['order' => $this->getTable('sales_order')], 'order.entity_id = main_table.order_id and (if(main_table.parent_item_id IS NULL,main_table.price != 0.0000,main_table.parent_item_id IS NULL))', [ 'order_number' => 'order.increment_id', 'order_store_id' => 'order.store_id', ] );
parent_item_id
порядку.