Magento 与或查询

Magento And- OR query

我们有两个属性 check_in_stock 和 show_in_front。我想对 magento 进行等效查询: where (check_in_stock > 0 OR (check_in_stock=0 and show_in_front=1))

请帮我找到等效的 magento 查询

您可以使用 SQL 查询,例如:

Mage::getModel("catalog/product")->getCollection()->getSelect()->where('check_in_stock > 0 OR (check_in_stock=0 and show_in_front=1)')

这将创建一个 sql 输出,如:

"SELECT `e`.* FROM `catalog_product_entity` AS `e` WHERE (check_in_stock > 0 OR (check_in_stock=0 and show_in_front=1))"

来自 Itera Research 的问候,

在这里,我很高兴分享我们 Magento 团队负责人的回复,请查看以下内容:

“首先您需要查找可见性和状态属性 ID

select attribute_id 来自 eav_attribute 其中 attribute_code = 'visibility';

在我的例子中 returns 102

select attribute_id 来自 eav_attribute 其中 attribute_code = 'status';

在我的例子中 returns 96

并将这些 ID 替换为以下查询

SELECT e.*, at_qty.qty, at_status.value AS status, at_visibility.value 作为 visibilitycatalog_product_entity 作为 e LEFT JOIN cataloginventory_stock_item AS at_qty ON (at_qty.product_id=e.entity_id) AND (at_qty.stock_id=1) 内部联接 catalog_product_entity_int AS at_status ON (at_status.entity_id = e.entity_id) AND (at_status.attribute_id = '96') 和 (at_status.store_id = 0) 内部联接 catalog_product_entity_int AS at_visibility ON (at_visibility.entity_id = e.entity_id) AND (at_visibility.attribute_id = '102') 和 (at_visibility.store_id = 0) 内部加入 cataloginventory_stock_status 作为 ss on (ss.product_id = e.entity_id) 其中 at_visibility.value = 1 和 ss.stock_status = 1

希望这对您有所帮助,

如果没有,请给我留言,

珍佐琳娜

Itera 研究