Требуется запрос/запрос рекурсии MySQL

Как подсчитать билеты для каждой категории? Основные категории должны включать в себя каждую подкатегорию-билет.

Таблицы:

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
1 ответ

Пытаться

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

Этот запрос объединяет ваши две таблицы вместе на основе их общего поля (внешний ключ категории_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

вы можете использовать союз, чтобы иметь их обоих одновременно

licensed under cc by-sa 3.0 with attribution.