我想计算产品的总数,如果产品有不同的尺寸则计算不同,例如:对于产品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等大小。
答案 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