【问题标题】:Join tables to get sold products加入表格以获取已售出的产品
【发布时间】:2010-04-06 02:18:56
【问题描述】:

我将通过“order_id”加入两个表“sales/order_item_collection”和“sales/orders”,以便之后我可以通过“store_id”和“product_name”过滤已售出的产品

代码如下:

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

为什么这个连接不起作用?

谢谢

【问题讨论】:

  • 点击您其他问题的正确答案左侧的复选标记。

标签: magento


【解决方案1】:

订单项集合对象实现了Mage_Core_Model_Mysql4_Collection_Abstract,因此查看该类,join 方法不会为表获取数组(与其他一些集合不同)。此外,您不需要手动获取表格,只需指定模型,Magento 将负责其余的工作。所以这行得通:

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

希望对您有所帮助。

谢谢, 乔

【讨论】:

  • 谢谢...这对您有很大帮助。这是我按商店和时间过滤已售产品的最终代码
  • $itemsCollection = Mage::getResourceModel('sales/order_item_collection') ->addFieldToFilter('main_table.created_at', array('from'=>$dateStart,'to'=>$dateEnd) ) ->join('order', 'order_id=entity_id') ->addFieldToFilter('store_id', array('eq'=>'1')) ;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多