Як користуватися групою у колекції magento із запитом приєднання


13

У адміністративній сітці модуля я використовую цей код для отримання колекції та групування їх за ідентифікатором клієнта

$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

будь-яка допомога буде високо оцінена.


1
це має бути -> group ('e.entity_id');
Аміт Бера

Ви повинні додати це як відповідь із детальною інформацією про те, навіщо вам потрібноe.
Джонатан Хуссі

Вибачте за цю дурну помилку. @AmitBera дякую за допомогу. Будь ласка, додайте це як відповідь, щоб це питання було закрите.
Харіс

Відповіді:


26

Вам потрібно додати ім'я таблиці в group by condition.Як ви зробили not added on conditions table nameв таблиці групи ( «ENTITY_ID») , такquery did not find columns name

 getSelect()->group('e.entity_id');

Логіка:

$collection->getSelect()->group('TABLE_NAME.FIELD_NAME')

1
Крім того, якщо вам потрібно згрупувати декілька полів, клавіші просто додайте більше -> group () -> group ('field1') -> group ('field2');
GregC

Я хочу замовити унікальні продукти за допомогою групи. У мене 2 замовлення з 2-ма позиціями. На даний момент у сітці відображається 4 ряди. Але мені потрібні 2 ряди, використовуючи групу by.
Дахук Мітеш

Поділіться своїм кодом
Аміт Бера

$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наказом мудро.
Дахук Мітеш
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.