计算opencart的所有产品,包括选项

ttcibm8c  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(440)

我想计算产品的总计数,如果一个产品有不同的大小,它计算为不同的,例如:对于产品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\u产品表:{productid,name,status}
oc\u product\u option\u value表:{productoptionvalueid,productid,optionid,optionvalueid,quantity}
optionid表示尺寸、重量等类型。optionvalueid表示s、m、l、xl等尺寸。

kxxlusnw

kxxlusnw1#

你不需要 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

相关问题