2010-04-06 5 views
1

Je rejoins deux tables de ventes/order_item_collection »et « ventes/commandes » par « order_id », de sorte que plus tard je puisse filtrer vendu des produits par « store_id » et « product_name »joindre des tables pour obtenir vendu des produits

Voici le code:

$orderTable = Mage::getSingleton('core/resource')->getTableName('sales/order'); 
$itemsCollection= Mage::getResourceModel('sales/order_item_collection') 
    ->join(array('ord'=>$orderTable),'e.order_id = ord.entity_id'); 

Pourquoi cette jointure ne fonctionne-t-elle pas?

Merci

+1

cliquez sur la case à gauche de la bonne réponse pour certaines de vos questions. –

Répondre

2

L'objet collection d'éléments de commande implémente Mage_Core_Model_Mysql4_Collection_Abstract, regarder si à cette classe, la méthode join ne prend pas un tableau pour la table (contrairement à d'autres collections). De plus, vous n'avez pas besoin d'obtenir la table manuellement, spécifiez simplement le modèle et Magento s'occupera du reste. Donc, cela fonctionne:

$itemsCollection= Mage::getResourceModel('sales/order_item_collection') 
    ->join('order', 'order_id=entity_id'); 

Espérons que cela aide.

Merci, Joe

+0

Merci ... cela aide beaucoup. Voici mon code final pour obtenir les produits vendus filtrés par magasin, et le temps – latvian

+0

$ itemsCollection = Mage :: getResourceModel ('ventes/order_item_collection') -> addFieldToFilter ('main_table.created_at', array ('de' => $ dateStart, 'to' => $ dateEnd)) -> join ('order', 'order_id = entity_id') -> addFieldToFilter ('store_id', array ('eq' => '1')) ; – latvian

Questions connexes