直接SQLクエリをコレクションモデルの使用に変換します
-
30-10-2019 - |
質問
私はこのクエリを持っています:
SELECT * FROM 'catalog_category_product' WHERE 'product_id' IN ('.$IDs.')
どこ $IDs
私は次のように取得します: $IDs = implode(',', $products);
と $products
製品IDの配列です。
今、私は同じことをしたいのですが、モデルコレクションを使用して。私はこれらの例をこれまでに持っています:
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToSelect('product_id');
$collection->addAttributeToSelect('category_id');
$collection->addAttributeToSelect('position');
$collection->addFieldToFilter(array('attribute'=>'product_id','in'=>array($products)));
と
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToSelect('product_id');
$collection->addAttributeToSelect('category_id');
$collection->addAttributeToSelect('position');
$collection->addFieldToFilter(array(
array('attribute'=>'product_id','in'=>array($products)),
));
ただし、どちらの場合も、最後の関数呼び出しで例外があります。
PS私はこれらの3つの属性を一度に取得する必要があります(SQLクエリが行うように)が、各値を繰り返すことはありません $products
何千もの製品を扱っているからです。
正しい解決策はありません
所属していません magento.stackexchange