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
作为 visibility
从 catalog_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 研究
我们有两个属性 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
作为 visibility
从 catalog_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 研究