Cách sử dụng nhóm bằng trong bộ sưu tập magento với truy vấn tham gia


13

Trong lưới quản trị của mô-đun, tôi đang sử dụng mã này để lấy bộ sưu tập và nhóm chúng theo id khách hàng

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

nhưng ở đây tôi phải sử dụng các hàm renderer và bộ lọc cho thông tin khách hàng như tên và email đối với từng cái entity_id. tôi muốn tham gia mô hình khách hàng với bảng mô-đun của tôi. vì điều này tôi đã viết mã này

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

nhưng nó cho tôi lỗi này

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

Bất kỳ trợ giúp sẽ được đánh giá cao.


1
nó phải là -> nhóm ('e.entity_id');
Amit Bera

Bạn nên thêm câu này dưới dạng câu trả lời với một số chi tiết về lý do tại sao bạn cầne.
Jonathan Hussey

Xin lỗi vì sai lầm ngớ ngẩn này. @AmitBera cảm ơn sự giúp đỡ của bạn và vui lòng thêm câu này dưới dạng câu trả lời để câu hỏi có thể được đóng lại.
Haris

Câu trả lời:


26

Bạn cần thêm tên bảng vào group by condition. Như bạn đã làm not added on conditions table nametrong nhóm bảng ('entity_id') vì vậyquery did not find columns name

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

Logic là:

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

1
Ngoài ra, nếu bạn cần nhóm theo nhiều trường, chỉ cần thêm nhiều mệnh đề -> nhóm () -> nhóm ('field1') -> nhóm ('field2');
GregC

Tôi muốn đặt hàng các sản phẩm độc đáo bằng cách sử dụng nhóm bởi. Tôi có 2 đơn hàng với 2 mục đơn hàng giống nhau. Hiện tại, nó được hiển thị 4 hàng trong lưới. Nhưng tôi cần 2 hàng sử dụng theo nhóm.
Dhaduk Mitesh

Chia sẻ mã của bạ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

Tôi muốn nhóm theo parent_item_idthứ tự khôn ngoan.
Dhaduk Mitesh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.