php - Magento 加入不同的表

标签 php mysql magento left-join

我的 Grid.php 文件中有以下代码:

function _prepareCollection () {
$collection = Mage::getResourceModel($this->_getCollectionClass());
$collection->getSelect()->joinLeft(
    array('sfog' => 'sales_flat_order_grid'),
    'main_table.entity_id = sfog.entity_id',
    array('sfog.shipping_name','sfog.billing_name')
);
$collection->getSelect()->joinLeft(
    array('sfo'=>'sales_flat_order'),
    'sfo.entity_id=main_table.entity_id',
    array(
        'sfo.customer_email',
        'sfo.weight',
        'sfo.discount_description',
        'sfo.increment_id',
        'sfo.store_id',
        'sfo.created_at',
        'sfo.status',
        'sfo.base_grand_total',
        'sfo.grand_total'
    )
);

我也想添加表 sales_order_item,但如果我添加此表,我会收到此错误:

具有相同 ID“119”的项目 (Mage_Sales_Model_Order) 已经存在

有什么办法吗?

最佳答案

假设您要加入 soi,意思是 sales_order_item,按 soi.item_id 分组

$collection->getSelect()->group('soi.item_id');

关于php - Magento 加入不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10834994/

相关文章:

php - Yii2:自定义设置方法/数据转换在 ActiveRecord 上不起作用?

Mysql查询IF条件和Group by

magento - 如何从产品中获取直接父类别

php - Chrome 下载我的 PHP 文件

php - 在此服务器上找不到请求的 URL。 Apache

php - 在 Zend Framework 上将模型中的文本插入数据库时​​出现问题

Magento:如何以编程方式创建子 block ?

c# - 如何从MySql数据库获取当前用户名信息,C#

mysql - Laravel 整数到 float 或十进制 MySQL 列

javascript - 添加隐藏属性来存储其他属性值