Magento koleksiyonunda birleştirme sorgusu ile group by nasıl kullanılır


13

Modülün yönetici ızgarasında toplama ve bunları müşteri kimliğine göre gruplandırmak için bu kodu kullanıyorum

$collection = Mage::getModel('referafriend/statistics')->getCollection();
$collection->getSelect()->group('entity_id');
$this->setCollection($collection);

ancak burada her birine karşı ad ve e-posta gibi müşteri bilgileri için oluşturucu ve filtre işlevlerini kullanmalıyım entity_id. Müşteri modeline modülümün masasına katılmak istiyorum. bunun için bu kodu yazdım

 $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('*');

ama bana bu hatayı veriyor

SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'entity_id' in group statement is ambiguous

herhangi bir yardım çok takdir edilecektir.


1
-> grup ('e.entity_id') olmalıdır;
Amit Bera

Bunu neden ihtiyacınız olduğuna dair bazı ayrıntılarla bir cevap olarak eklemelisinize.
Jonathan Hussey

Bu aptalca hata için özür dilerim. @AmitBera yardımınız için teşekkür ederiz ve lütfen sorunun yanıt olarak eklenebilmesi için sorunun yanıt olarak ekleyin.
Haris

Yanıtlar:


26

Sen tablo adı eklemeniz gerekir group by conditionyaptın .as not added on conditions table nametablo en ( 'ENTITY_ID') grubunda bu yüzdenquery did not find columns name

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

Mantık:

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

1
Ek olarak, birden çok alana göre gruplamanız gerekiyorsa, daha fazlasını ekleyin -> group () cümleleri -> grup ('field1') -> grup ('field2');
GregC

Group by kullanarak benzersiz ürünler sipariş etmek istiyorum. Aynı sipariş kalemi ile 2 siparişim var. Şu anda, ızgarada 4 satır görüntülenir. Ama ben by by group kullanarak 2 satır gerekir.
Dhaduk Mitesh

Kodunuzu paylaşın
Amit Bera

$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', ] );
Dhaduk Mitesh

parent_item_idBilgiye göre gruplandırmak istiyorum .
Dhaduk Mitesh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.