【问题标题】:Magento: Joining left table in gridMagento:加入网格中的左表
【发布时间】:2011-11-01 10:41:58
【问题描述】:

我正在尝试添加一个需要进行左连接的网格。

protected function _prepareCollection()
{
    $collection = Mage::getResourceModel('admin/user_collection')->join("school/school",'ref_id = referer_id',"school_name",**"left"**);
    var_dump((string)$collection->getSelect());

    $this->setCollection($collection);
    return parent::_prepareCollection();
}

即使我在看到它显示的转储时定义了“左”:

SELECT main_table.*, school/school.school_name FROM admin_user AS main_table INNER JOIN school AS school/school ON ref_id = referer_id

我试着做一个 $collection = Mage::getResourceModel('admin/user_collection')->**joinLeft**("school/school",'ref_id = referer_id',"school_name","left");
但我的系统没有显示任何 var_dump 挂起。

【问题讨论】:

    标签: magento join collections


    【解决方案1】:

    在join 之前尝试getSelect()

    【讨论】:

    • 试过了,但查询现在变成了 SELECT main_table.*, school/school.school_name FROM admin_user AS main_table LEFT JOIN school/school ON ref_id = referer_id。这不是有效的 sql 查询
    • OK... 这样做 $collection = Mage::getResourceModel('admin/user_collection')->getSelect()->joinLeft("school",'ref_id = referer_id',"school_name" );工作。
    【解决方案2】:

    如果您想放置 OR 条件 bw 属性,请使用产品集合

    $collection = Mage::getModel('catalog/product')->getCollection();
      $collection->addAttributeToFilter(
        array(
          array('attribute'=>'my_attribute', 'eq'=>'0'),
          array('attribute'=>'my_other_attribute', 'neq'=>'0')
        ),
        '',
        'left'
      );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多