我正在执行以下操作以从系统中获取一些订单以进行导出:
$orders = Mage::getModel('sales/order')->getCollection()
->addFieldToFilter('status', $statusToExport)
->addFieldToFilter('store_id', $this->processingStoreId)
->addFieldToFilter('updated_at', array('gteq' => date('Y-m-d H:i:s', $lastSyncTime)));
如果订单在我拥有的自定义表中,我需要在不导出的地方添加一些内容entity_id
。如果使用的是SQL,则可以执行以下操作:
left join myTable as mt on main_table.entity_id = mt.entity_id
where mt.entity_id is null
但是我不确定如何修改集合查询来做类似的事情。
注意:我确实尝试过
$orders = $orders->getSelect()
->joinLeft(
array("t1" => $myTable),
"main_table.entity_id = t1.entity_id",
array("admin_field_id" => "t1.id")
)
->where("t1.id is null")
但这会更改它,因此这是一个查询,我希望返回销售/订单集合。
我觉得我缺少一些简单的东西...
编辑
好的,我已经试过了:
$orders->getSelect()
->joinLeft(
array("t1" => $myTable),
"main_table.entity_id = t1.entity_id",
array("admin_field_id" => "t1.id")
)
->where("t1.id is null");
当我回显(string)$orders->getSelect()
它时,它将返回我期望的查询,并且在运行它时不返回任何结果。$orders
但是,仍然包含项目。我以为这次加入是为了修改集合?
$orders->getSelect() ->joinLeft(array("t1" => $myTable), "main_table.entity_id = t1.entity_id", array("admin_field_id" => "t1.id")) ->where("t1.id is null")
将这些项目从我的当前列表中排除?