Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要MySQL递归查询/语句_Mysql_Recursion - Fatal编程技术网

需要MySQL递归查询/语句

需要MySQL递归查询/语句,mysql,recursion,Mysql,Recursion,如何计算每个类别的门票? 主要类别应包括每个子类别票据 表: 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) c

如何计算每个类别的门票? 主要类别应包括每个子类别票据

表:

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
试一试

此查询根据两个表的公共字段(category_id用于category table的外键)将它们连接在一起,并统计每个类别的所有票证。分组一个聚合函数。 要根据您的评论查找子类别,请使用此查询

    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

您可以使用union同时拥有它们两个

票务表没有类别id?哦,对了,对不起。票证表有一个类别id。您是否也可以发布
show create table ticket
show create table category
输出?这只显示每个类别的计数。但是我想要一个递归语句。每个子类别的计数都应该添加到主类别计数中。我想这就是你想要的need@KateGregory只是补充了一些解释。Thanks@6EQUJ5HD209458b您能显示子类别表吗?给我们一些样本数据?请注意。。。MySQL 5.6中不推荐使用按分组的隐式排序,并将在将来删除。。。如果不需要排序的开销,请在GROUPBY语句之后使用ORDERBYNULL
    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