Mysql 具有产品计数和父类别的SQL产品类别
我正在尝试编写SQL查询以获取:Mysql 具有产品计数和父类别的SQL产品类别,mysql,sql,Mysql,Sql,我正在尝试编写SQL查询以获取: Category_ID, Category_Name, Category_Parent, Category, ProductCount from two tables Product_Category and Product 我想从查询中获得结果: Category_ID | Category_Name | Category_Parent | ProductCount 所以,我找到了解决问题的办法 SELECT X.id, X
Category_ID, Category_Name, Category_Parent, Category, ProductCount
from two tables Product_Category and Product
我想从查询中获得结果:
Category_ID | Category_Name | Category_Parent | ProductCount
所以,我找到了解决问题的办法
SELECT
X.id,
X.category,
X.parent,
X.status,
Y.product_count
FROM
(
SELECT
c.id AS id,
c.name AS Category,
p.name AS Parent,
c.status AS
STATUS
FROM
product_category c
LEFT JOIN product_category p ON
c.parent_id = p.id
) X
LEFT JOIN(
SELECT
c.id,
COUNT(p.id) AS product_count
FROM
product_category c
LEFT JOIN product p ON
c.id = p.category_id
GROUP BY
p.category_id
) AS Y
ON
X.id = Y.id
使用
over
可以在聚合函数中执行相同的分组操作
SELECT
DISTINCT Product_Category.id AS Category_ID,
Product_Category.name AS Category_Name,
Product_Category.parent_id AS Category_Parent,
COUNT(Product.id) OVER (partition BY Product_Category.id) AS ProductCount
FROM Product JOIN Product_Category ON Product.category_id = Product_Category.id
mysql中的结果: