Ich tue Folgendes, um einige Bestellungen für den Export aus dem System zu bekommen:
$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)));
Ich muss etwas hinzufügen, das nicht exportiert werden kann, wenn sich die Reihenfolge entity_id
in einer benutzerdefinierten Tabelle befindet, die ich habe. Wenn ich SQL verwenden würde, würde ich Folgendes tun:
left join myTable as mt on main_table.entity_id = mt.entity_id
where mt.entity_id is null
Ich bin mir jedoch nicht sicher, wie ich die Sammlungsabfrage ändern soll, um etwas Ähnliches zu tun.
Hinweis: Ich habe es versucht
$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")
Dies ändert sich jedoch, sodass es sich um eine Abfrage handelt, und ich möchte, dass der Verkaufs- / Auftragsbestand zurückgegeben wird.
Mir fehlt etwas Einfaches ...
BEARBEITEN
Ok, ich habe es versucht:
$orders->getSelect()
->joinLeft(
array("t1" => $myTable),
"main_table.entity_id = t1.entity_id",
array("admin_field_id" => "t1.id")
)
->where("t1.id is null");
Wenn ich ein Echo (string)$orders->getSelect()
erhalte, wird die erwartete Abfrage zurückgegeben. Wenn ich sie ausführe, werden keine Ergebnisse zurückgegeben. $orders
Enthält jedoch noch Elemente. Ich dachte, dass dieser Join die Sammlung zu diesem Zeitpunkt ändern sollte?
$orders->getSelect() ->joinLeft(array("t1" => $myTable), "main_table.entity_id = t1.entity_id", array("admin_field_id" => "t1.id")) ->where("t1.id is null")
die Artikel, basierend auf Ihrem ersten Punkt, nicht von meiner aktuellen Liste ausschließen?