2

getSelect()関数をエコーすると、次のようなクエリが表示されるMagentoコレクションがあります。

   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');

しかし、選択の最初の部分にカスタムクエリテキストを追加するにはどうすればよいですか?

どうもありがとう

4

1 に答える 1

5

Mage_Eav_Model_Entity_Collection_Abstract関数を使用addExpressionAttributeToSelectして、クエリに副選択を追加できます。
または、新しい副選択フィールドを追加して、次のように選択します。

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

注:$fullExpression引用符で囲む必要があります。

于 2013-02-23T08:05:47.480 に答える