Come aderire a tre tavoli per la filtrazione?
-
28-09-2020 - |
Domanda
Sto applicando il filtro sulla raccolta degli ordini.Sono bloccato in una situazione, ho aggiunto un attributo personalizzato per "indirizzo del cliente".Quello è nella tabella "customer_address_enty_varchar", ora devo aderire a seguire tre tavoli, (1) sales_flat_order (2) sales_flat_order_address (3) customer_address_enty_varcharch.In tal modo come mostrato sottovoce, so che non è la cosa giusta.
$orderCollection = Mage::getModel('sales/order')->getCollection();
//Filter for excluding Stores
if (!empty($excludeStoresIds)) {
$excludeStoresIds = explode(',', $excludeStoresIds);
$excludeStoresIds = array_map('trim', $excludeStoresIds); //Remove white spaces
$orderCollection->getSelect()->joinLeft(array('sfoa' => 'sales_flat_order_address'), 'main_table.entity_id = sfoa.parent_id', "");
$orderCollection->addFieldToFilter('sfoa.address_type', array('eq' => 'shipping'));
$orderCollection->getSelect()->joinLeft(array('sfoa' => 'sales_flat_order_address','caev' => 'customer_address_entity_varchar'), 'sfoa.customer_address_id = caev.entity_id', "");
$orderCollection->addFieldToFilter('caev.value', array('nin' => $excludeStoresIds));
}
.
Qui $ ExcLestoresids è un array
Soluzione
Grazie @mayers
$orderCollection->getSelect()->joinLeft(array('sfoa' => 'sales_flat_order_address'), 'main_table.entity_id = sfoa.parent_id', "");
$orderCollection->addFieldToFilter('sfoa.address_type', array('eq' => 'shipping'));
$orderCollection->getSelect()->joinLeft(array('caev' => 'customer_address_entity_varchar'), 'caev.entity_id = sfoa.customer_address_id', "");
$orderCollection->addFieldToFilter('caev.value', array('nin' => $excludeStoresIds));
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange