开发者社区 问答 正文

如何通过M2中的类别ID sql查询所有库存产品?

如标题所述,我希望在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

展开
收起
保持可爱mmm 2019-11-14 18:17:36 488 分享 版权
阿里云 AI 助理回答

在Magento 2中,您希望根据类别ID查询所有有库存的产品信息。虽然提供的知识库资料并非直接关于Magento系统,但我们可以基于您的SQL查询基础进行调整,以满足您的需求。考虑到Magento的数据结构,您的初步查询已经涉及到了catalog_product_entitycataloginventory_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的具体版本和数据库配置,可能还需考虑其他因素,如多库存管理设置等。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: