Nome del prodotto e metodo di spedizione ordine, sulla griglia di ordine
-
16-10-2019 - |
Domanda
Sto cercando di aggiungere il nome del prodotto, SKU prodotto e metodo di spedizione dell'Ordine, alla griglia di partenza di vendita.
questo è come il mio aspetto di funzione:
protected function _prepareCollection()
{
echo $collection = Mage::getResourceModel($this->_getCollectionClass())
->join(
'sales/order_item',
'`sales/order_item`.order_id=`main_table`.entity_id',
array(
'skus' => new Zend_Db_Expr('group_concat(`sales/order_item`.sku SEPARATOR ",")'),
'names' => new Zend_Db_Expr('group_concat(`sales/order_item`.name SEPARATOR ",")'),
)
)
->join(
'sales/order',
'`sales/order`.entity_id=`main_table`.entity_id',
array(
'shipping_description' => 'shipping_description'
)
);
echo $collection->getSelect();
$collection->getSelect()->group('entity_id');
$this->setCollection($collection);
return parent::_prepareCollection();
}
, ma questo dà questo errore:
SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'entity_id' in-group statement is ambiguous
Probabilmente perché ci sono due entitity_ids nella main_table
.
C'è un modo per risolvere questo problema?
Soluzione
$collection->getSelect()->group('entity_id');
ENTITY_ID è il nome PK per molti tavoli. È necessario specificare il nome della tabella, così:
$collection->getSelect()->group('maint_table.entity_id');
Inoltre, si veda:. $collection->getSelect()
copia-incollare la query a MySQL in modo da capire di più la questione di fondo
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange