İhracat için sistemden bazı siparişler almak için aşağıdakileri yapıyorum:
$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)));
Ben nerede bir şey eklemem gerekiyor gelmez sipariş eğer dışa entity_id
Ben özel bir tablodur. SQL kullanıyor olsaydım, yapardım:
left join myTable as mt on main_table.entity_id = mt.entity_id
where mt.entity_id is null
Ancak benzer bir şeyi yapmak için toplama sorgusunu nasıl değiştireceğimi bilmiyorum.
Not: Denedim
$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")
ama bu onu değiştirir, böylece bir sorgu olur ve satış / sipariş tahsilatının iade edilmesini istiyorum
Basit bir şey kaçırdığımı hissediyorum ...
DÜZENLE
Tamam, bunu denedim:
$orders->getSelect()
->joinLeft(
array("t1" => $myTable),
"main_table.entity_id = t1.entity_id",
array("admin_field_id" => "t1.id")
)
->where("t1.id is null");
Yankı (string)$orders->getSelect()
, sorguyu döndürür ve beklediğimde çalıştırdığımda sonuç döndürmez. $orders
ancak yine de öğeler içeriyor. Bu birleşimin bu noktada koleksiyonunu değiştirmesi gerektiğini düşündüm?
$orders->getSelect() ->joinLeft(array("t1" => $myTable), "main_table.entity_id = t1.entity_id", array("admin_field_id" => "t1.id")) ->where("t1.id is null")
öğeleri mevcut listemden hariç tutmamalı mıyım?