如何sql在M2中按类目ID查询所有库存商品?

How do you sql query all in stock products by category ID in M2?

如标题所述,我希望在 Magento 2 中按类别 ID 查询所有 in-stock 产品。如果有库存,可能只获取 parent(config) 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

获取类别 ID 的所有库存产品:

SELECT product.entity_id as product_id, product.sku, stock_item.is_in_stock FROM catalog_product_entity as product
    INNER JOIN cataloginventory_stock_item as stock_item ON product.entity_id = stock_item.product_id
    INNER JOIN catalog_category_product as cat_prod on product.entity_id = cat_prod.product_id
    WHERE cat_prod.category_id=XXX and stock_item.is_in_stock=1;

如果您只想要可配置项,只需添加如下条件:and product.type_id='configurable'