如标题所述,我希望在Magento 2中按类别ID查询所有库存产品。如果简单有库存,则可能仅获得父(配置)ID,不确定我是否有意义?
SELECT p.entity_id as product_id, p.sku, c.is_in_stock FROM catalog_product_entity as p INNER JOIN cataloginventory_stock_item as c ON p.entity_id = c.product_id
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Magento 2中,您希望根据类别ID查询所有有库存的产品信息。虽然提供的知识库资料并非直接关于Magento系统,但我们可以基于您的SQL查询基础进行调整,以满足您的需求。考虑到Magento的数据结构,您的初步查询已经涉及到了catalog_product_entity
和cataloginventory_stock_item
表,这是正确的方向。为了加入按类别ID筛选的条件,我们需要与catalog_category_product
表进行关联。以下是调整后的SQL查询示例:
SELECT
p.entity_id AS product_id,
p.sku,
c.is_in_stock,
cp.category_id
FROM
catalog_product_entity AS p
INNER JOIN
cataloginventory_stock_item AS c ON p.entity_id = c.product_id
INNER JOIN
catalog_category_product AS cp ON p.entity_id = cp.product_id
WHERE
cp.category_id = '需要查询的类别ID'
AND
c.is_in_stock = 1;
关键点说明: - 查询目标:此查询旨在获取指定类别ID下所有有库存(is_in_stock = 1
)的产品。 - 表关联: - catalog_product_entity (p)
:存储产品基本信息。 - cataloginventory_stock_item (c)
:记录每个产品的库存状态。 - catalog_category_product (cp)
:建立产品与类别的关联关系,用于按类别筛选。 - 筛选条件:通过WHERE
子句限制查询结果为特定类别ID且商品有库存。
请将'需要查询的类别ID'
替换为您实际想要查询的类别ID值。这样,您就能获得该类别下所有有库存产品的ID、SKU及是否在库状态。
注意: - 确保执行此查询的用户或系统账户具有访问这些表的权限。 - 根据Magento的具体版本和数据库配置,可能还需考虑其他因素,如多库存管理设置等。