【问题标题】:PHP MySQL DISTINCT/GROUP BYPHP MySQL DISTINCT/GROUP BY
【发布时间】:2014-09-23 02:58:22
【问题描述】:

我有以下表格:


- 表'Category_sub' -

  • Subcategory_id
  • Subcategory_maincatid
  • 子类别名称

- 表'Products_categories' -

  • Products_categories_product_id
  • Products_categories_category_id

- 表“产品”-

  • Products_id
  • Products_itemnumber
  • Products_subitemnumber

我想显示类别的名称和该类别中的产品数量。

每个产品都有一个项目编号(不是唯一的)和一个子项目编号(唯一的)。将使用子项编号 适用于同一产品的不同颜色/类型。

我有以下脚本:

<?php

$sql= $db->prepare("
    SELECT *,
    COUNT(DISTINCT Products_itemnumber) AS Products_total
    FROM
        Category_sub,
        Products_category,
        Products
    WHERE
        Subcategory_maincatid=:cat_id
        AND Subcategory_id=Products_categories_category_id
        AND Products_categories_product_id_id=Products_id
    GROUP BY Subcategory_name
");

$sql->bindValue(':cat_id', $_GET['cat_id'], PDO::PARAM_INT);
$sql->execute();
$sql_fetch= $sql->fetchAll(PDO::FETCH_ASSOC);

foreach($sql_fetch as $category) {
    echo $category['Subcategory_name'] ."(". $category['Products_total'] .")<br />";
}

?>

上面的脚本不能正常工作。我有两个具有相同 itemnumber 的产品,脚本应该 将其视为一种产品。上面的脚本计算了两个产品。

【问题讨论】:

    标签: php mysql


    【解决方案1】:
    select Subcategory_name, COUNT(*)
    from Category_sub 
          JOIN Products_categories ON Products_categories_category_id = Subcategory_id
          JOIN Products ON Products_id = Products_categories_product_id
    group by Subcategory_name
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 2021-02-09
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多