2017-11-03 17 views
0

どのようにしますか?Mainテーブルで結合したテーブルに2つの親IDを持つテーブルがある場合、Magentoの_preparecollectionでStatementを選択します。MagentoのコレクションでJoinテーブルの複数の行を含むクエリを選択

私は今テーブルを持っています。

表1(メインテーブル) enter image description here

表2(sales_flat_invoice_comment) enter image description here

私の現在のコレクション

$collection = Mage::getResourceModel($this->_getCollectionClass()); 
$collection->getSelect()->join(array('a'=> mgmx_sales_flat_invoice_comment), 'a.parent_id = main_table.entity_id', array('a.comment')); 
$this->setCollection($collection); 
return parent::_prepareCollection(); 

このクエリは、エコーでこの

ようになる準備

SELECT main_table。*、amgmx_sales_flat_invoice_grid FROM comment main_table インナーとしてa.parent_id = main_table.entity_id

ON a AS mgmx_sales_flat_invoice_commentを登録しよう。しかし、このクエリは

表2に超える1行が見つかった場合には、エラーが返されますどのような私が欲しい

enter image description here

下図のようなものですと|デリミタとして。

どのようにMagentoの_prepareCollectionでこれを達成できますか?

答えて

0

あなたはentity_idでグループ化し、group_concatを使用してコメント列を作成する必要があります。グループ内にセパレータを定義することができます。

連結列の長さには制限があります。したがって、あなたの1つのコメントの長さとコメントの数に応じて、結果のすべてを得ることはできません。

私はこれがあなたの問題の解決に役立つことを願っています。

+0

私はすでにMysqlでそれをしました。私の最後の質問Sirは、それをzendフレームワーククエリに変換する方法です –

関連する問題