【问题标题】:List active products in a category in Magento with SQL使用 SQL 列出 Magento 类别中的活动产品
【发布时间】:2015-11-21 18:27:03
【问题描述】:

我正在使用 Magento 数据库创建报告,但我无法让它与我合作。

我需要列出商店的类别以及每个类别中有多少活跃产品。

即: 包 (5) 鞋子 (12) 铅笔 (6)

等等

到目前为止我发现的是:

  1. catalog_category_flat_store_9 列出商店的类别以及类别 ID

  2. 可以在catalog_category_product中使用category id来获取Product id的

  3. 产品 id 可用于 catalog_product_entity 获取 sku(并过滤掉已配置的产品)

  4. 1234563
  5. catalog_product_entity_int中可以使用实体id来获取整数列表

  6. eav_attribute 可用于查找属性 id 96(在我的情况下)是显示某物是否处于活动状态的状态属性

这是正确的方法还是有更简单的方法?

到目前为止,我已经做到了

SELECT entity_id FROM `catalog_product_flat_9` WHERE sku = (SELECT p.sku
FROM catalog_product_entity AS p
LEFT JOIN catalog_category_product AS cp ON p.entity_id = cp.product_id
WHERE p.type_id = 'simple'
AND cp.category_id = 89)

这行不通,但至少这是一个开始

【问题讨论】:

    标签: sql magento categories product


    【解决方案1】:

    这可能会有所帮助。

    这是我检索活动类别名称的查询,以及该类别中所有产品的计数,因此计数大于零。

    SELECT t0.value, t0.c0
    FROM (
      SELECT t2.value, (
        SELECT COUNT(*)
        FROM catalog_category_product AS t4
        WHERE (t4.category_id = t1.entity_id)) AS c0
      FROM catalog_category_entity AS t1
      INNER JOIN catalog_category_entity_varchar AS t2 ON (t1.entity_id = t2.entity_id)
      INNER JOIN catalog_category_entity_int AS t3 ON (t1.entity_id = t3.entity_id)
      WHERE (((((t2.attribute_id = 41)
          AND (t2.store_id = 0))
          AND (t3.attribute_id = 42))
          AND (t3.store_id = 0))
          AND (t3.value = 1))) AS t0
    WHERE (t0.c0 > 0)
    

    不过,我还没有尝试按库存来过滤产品。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多