php - 计数 Opencart 的总产品,包括选项

标签 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、数量}

optionId 用于尺寸、重量等类型。 S、M、L、XL 等尺码的 optionValueId id。

最佳答案

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

这对我适用于 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

关于php - 计数 Opencart 的总产品,包括选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48276958/

相关文章:

php 标签不工作/字符串不显示

php - 使用 php mysql 和 inner join 的语法错误

php - 使用哪种方法来加密MySQl数据库中的密码?

java - 在 JDBC 中转义单引号(出现错误 : You have an error in your SQL syntax . ..)

php - 重定向并在 opencart 中发布

php - 比较两个字符串,一个字符串有一个通配符

javascript - 如何将不同表中的字段值映射到 API 中的 ID?

php - 如何根据在 PHP MySQL 和 JQuery 中输入的州名称自动完成城市列表

Seo 网址不适用于 OpenCart 3 中的主页

php - 打开购物车 2 : Add currently logged admin id to oc_product table on product insert