我如何计算每个类别的门票?main-categories应该包括每个子类别-ticket。
表:
ticket(id, category_id)
category(id, name, parentcategory_id) 我需要一个MySQL查询。是否可以使用MySQL和这种表结构?如果不是,怎么做?
示例数据:
ticket(1,1);
ticket(2,2);
ticket(3,3);
ticket(4,2);
category(1, 'Hardware', NULL)
category(2, 'Printer', 2)
category(3, 'Software', NULL)所以我有:
Software - 1 Ticket
Printer - 2 Tickets
Hardware - 1 Main Ticket, 2 Sub Tickets = 3 Tickets发布于 2013-12-05 03:30:15
试一试
SELECT C.name AS 'Category', COUNT(ticket.id) AS 'Ticket Count'
FROM ticket
JOIN category AS C ON C.id = ticket.category_id
GROUP BY C.name该查询根据两个表的公共字段( category表的category_id外键)将它们连接在一起,并计算每个类别的所有票证。GROUP BY对聚合函数进行分组。要根据您的评论查找子类别,请使用以下查询
SELECT C.name AS 'Sub-Category', COUNT(ticket.id) AS 'Ticket Count'
FROM ticket
JOIN category AS C ON C.id = ticket.category_id
WHERE C.categoryparentid IS NULL
GROUP BY C.name您可以使用联合来同时拥有它们。
https://stackoverflow.com/questions/20384055
复制相似问题