有没有办法将自定义查询添加到集合呈现的magento选择?

时间:2013-02-22 22:54:31

标签: magento collections

我有一个magento集合,如果我回显了getSelect()函数,我会得到这样的查询:

   SELECT 
    `table1`.*,
    `table`.*,
    `table3.fieldy` AS 'fieldname'
  .....
  FROM ....
  WHERE....

我希望将此查询更改为以下内容:

   SELECT 
    `table1`.*,
    `table`.*,
    `table3.fieldy` AS 'fieldname',
     (SELECT col1, col2, (case when (action == 2 and state == 0) then 1 else 0 end) as state from tbl1)   AS 'fieldname2'
    ......
    FROM....
    WHERE....

现在,例如,对于where子句,您可以使用

向查询添加文本
productCollection->getSelect()->where('query text');

但是如何将自定义查询文本添加到select的第一部分?

非常感谢

1 个答案:

答案 0 :(得分:5)

您可以使用Mage_Eav_Model_Entity_Collection_Abstract函数addExpressionAttributeToSelect将Subselect添加到您的查询中 或者只需添加新的子选择字段以选择:

$this->getSelect()->columns(array($alias => $fullExpression));

注意:$fullExpression应该用引号括起来。