-1

我需要来自 magento 数据库的 ACTIVE 产品列表,其中包含以下信息。如果有其他信息很好,但需要有以下信息。

SKU:
PRODUCT NAME:
PRODUCT CATEGORY:
SHORT DESCRIPTION:
LONG DESCRIPTION:
WEIGHT:

为此编写查询的方法是什么。我只需要获取数据。没有php,只有sql查询。(db结构有点复杂)

4

1 回答 1

2

试试看,它可以获取产品数据:(状态 = 2 = 产品已禁用,状态 = 1 = 产品已启用)

SELECT `e`.*, IF(_table_status.value_id > 0, _table_status.value, _table_status_default.value) AS `status
FROM `mage_catalog_product_entity` AS `e`
INNER JOIN `mage_catalog_product_entity_int` AS `_table_status_default`
ON (`_table_status_default`.`entity_id` = `e`.`entity_id`)
AND (`_table_status_default`.`attribute_id` = '80')
AND `_table_status_default`.`store_id` = 0
LEFT JOIN `mage_catalog_product_entity_int` AS `_table_status`
ON (`_table_status`.`entity_id` = `e`.`entity_id`)
AND (`_table_status`.`attribute_id` = (SELECT attribute_id FROM mage_eav_attribute WHERE attribute_code = 'status' AND entity_type_id = 4))
AND (`_table_status`.`store_id` = '1')
WHERE (IF(_table_status.value_id > 0, _table_status.value, _table_status_default.value) = '2')

对于该类别,您将需要一些额外的工作。我通过在 PHP 和 Magento 集合中执行以下操作来获取此 sql 查询:

/* @var $productCollection Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection */
$productCollection = Mage::getModel('catalog/product')->getCollection();
$productCollection->addFieldToFilter('status', array('eq' => '2'))->load(true);
于 2012-12-12T09:02:55.103 回答