วิธีใช้กลุ่มโดยในชุดข้อมูลวีโอไอพีพร้อมแบบสอบถามแบบใช้ร่วม


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');
Amit Bera

คุณควรเพิ่มสิ่งนี้เป็นคำตอบพร้อมรายละเอียดเกี่ยวกับสาเหตุที่คุณต้องการe.
Jonathan Hussey

ขออภัยที่ทำผิดพลาด @AmitBera ขอบคุณสำหรับความช่วยเหลือของคุณและโปรดเพิ่มสิ่งนี้เป็นคำตอบเพื่อที่จะสามารถปิดคำถามได้
Haris

คำตอบ:


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 () clauses -> group ('field1') -> group ('field2');
GregC

ฉันต้องการสั่งซื้อผลิตภัณฑ์ที่ไม่ซ้ำกันโดยใช้กลุ่มโดย ฉันมี 2 คำสั่งกับ 2 คำสั่งซื้อเดียวกัน ในปัจจุบันมันจะแสดง 4 แถวในตาราง แต่ฉันต้องการ 2 แถวโดยใช้กลุ่มโดย
Dhaduk Mitesh

แบ่งปันรหัสของคุณ
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_idคำสั่งที่ชาญฉลาด
Dhaduk Mitesh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.