수출을 위해 시스템에서 주문을 받기 위해 다음을 수행하고 있습니다.
$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")
현재 목록에서 해당 항목을 제외 해서는 안 됩니까?