mysql - 如何使用 join in magento 获取集合

标签 mysql sql magento filter

我需要将以下 sql 查询转换为 magento 以获取集合。

SELECT * FROM sales_flat_order LEFT JOIN sales_flat_order_address ON sales_flat_order.entity_id=sales_flat_order_address.parent_id And sales_flat_order_address.store_id!=x;

我试过了,我知道这是错误的,只是想知道我想做什么,其中“555”是 sql 查询中的 x

 $ordercollection = Mage::getModel('sales/order')->getCollection();
    $ordercollection->getSelect()->joinLeft(array('sfoa' => 'sales_flat_order_address'),'main_table.entity_id = sfoa.parent_id',array(,=>'sfoa.store_id'));
    $ordercollection->addFieldToFilter('store_id',array('neq'=>'555'));

最佳答案

你快到了:

$orderCollection = Mage::getModel('sales/order')->getCollection();
$orderCollection->getSelect()->joinLeft(array('sfoa' => 'sales_flat_order_address'),'main_table.entity_id = sfoa.parent_id', "");
$orderCollection->addFieldToFilter('main_table.store_id',array('neq'=>'555'));

输出

SELECT `main_table`.* FROM `sales_flat_order` AS `main_table` LEFT JOIN `sales_flat_order_address` AS `sfoa` ON main_table.entity_id = sfoa.parent_id WHERE (main_table.store_id != '555')

SFOA 不包含 store_id 列,因此我更新了上面的集合查询。

foreach($orderCollection as $collection) {
    // do something
    //var_dump($collection->getData());die();
}

关于mysql - 如何使用 join in magento 获取集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33996385/

相关文章:

mysql - 通过终端在 InfluxDB 中创建表

events - Magento 添加新产品事件观察者

mysql - 客户多于平均水平的城市。子查询

php - Mysql更新在 "end"状态下需要很长时间

java - 在包含远程数据库的 Oracle 上测试 SQL 查询

php - 在 MySQL 中,如何选择包含我测试的每个值的结果?

php - Magento ->getSku() 或 getData('sku') 返回空字符串

php - wordpress fishpig magento 安装 - getPostListHtml()

mysql - Yii 查询优化 MySQL

mysql - 使用 For 循环迭代异步函数(数据库查询,Node.js)