Permintaan Magento
$productsCollection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToFilter('status', 2); // added enabled
Permintaan Mysql
SELECT `e`.*, IF(at_status.value_id > 0, at_status.value, at_status_default.value) AS `status`
FROM `catalog_product_entity` AS `e`
INNER JOIN `catalog_product_entity_int` AS `at_status_default`
ON (`at_status_default`.`entity_id` = `e`.`entity_id`)
AND (`at_status_default`.`attribute_id` = '96')
AND `at_status_default`.`store_id` = 0
LEFT JOIN `catalog_product_entity_int` AS `at_status`
ON (`at_status`.`entity_id` = `e`.`entity_id`)
AND (`at_status`.`attribute_id` = '96')
AND (`at_status`.`store_id` = 1)
WHERE (IF(at_status.value_id > 0, at_status.value, at_status_default.value) = '2')
@Amit Bera jawab adalah yang terbaik tetapi permintaan SQL tidak berfungsi jika Anda memiliki lebih dari satu kode atribut bernama "status" (dalam kasus saya, saya memiliki total 5 baris "status") dan MySQL akan mengembalikan Anda:
#1242 - Subquery returns more than 1 row
kesalahan.Jadi saya menyelesaikan query SQL dengan menambahkan source_model sebagai 'katalog / product_status' seperti ini berfungsi:
sumber