计算Opencart的总产品,包括选项

时间:2018-01-16 08:31:56

标签: php mysql opencart

我想计算产品的总数,如果产品有不同的尺寸则计算不同,例如:对于产品SKU1,我有不同的尺寸,如S,M,L,XL,所以计数将是4不1。

尝试了此查询但未正常工作 -

SELECT COUNT(*) total 
  FROM oc_product p 
  LEFT 
  JOIN oc_product_option_value pov 
    ON pov.product_id = p.product_id
   AND pov.option_id in (5,11,12,13) 
  LEFT 
  JOIN oc_product_to_store p2s 
    ON p.product_id = p2s.product_id
 WHERE p.status = 1 
   AND p2s.store_id = 1

它没有给出正确的计数值。谁能帮忙。我是Opencart的新手。

oc_product表:{productId,name,status}

oc_product_option_value表:{productOptionValueId,productId,optionId,optionValueId,quantity}

optionId适用于大小,重量等类型。 optionValueId id适用于S,M,L,XL等大小。

1 个答案:

答案 0 :(得分:0)

LEFT JOIN你不需要oc_product_option_value,你需要一个子查询。

这适用于OpenCart 3.0.2.0

SELECT COUNT(p.product_id) +
(SELECT COUNT(*) FROM oc_product_option_value pov WHERE pov.option_id = 11) AS total
  FROM oc_product p 
  LEFT 
  JOIN oc_product_to_store p2s 
    ON p.product_id = p2s.product_id
 WHERE
 (SELECT DISTINCT(pov.product_id) FROM oc_product_option_value pov WHERE pov.product_id = p.product_id) IS NULL
 AND p.status = 1 
 AND p2s.store_id = 1