Как объединить таблицу с самим собой? - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть эта таблица меню, эта таблица содержит меню и его родителя.

enter image description here

Проблема в том, что я хочу получить, сколько у каждого ребенкаменю есть.Вот так

enter image description here

1 Ответ

0 голосов
/ 30 сентября 2018

Если вам просто интересно, сколько дочерних меню находится непосредственно в главном родительском меню?

Затем следует присоединить тех, у кого parent_id = 0, к дочерним меню и выполнить группировку по основным меню.

Например:

SELECT MainMenu.menu_name AS Menu, COUNT(ChildMenu.menu_id) as Child
FROM YourMenuTable AS MainMenu
LEFT JOIN YourMenuTable AS ChildMenu ON ChildMenu.parent_id = MainMenu.menu_id
WHERE MainMenu.parent_id = 0
GROUP BY MainMenu.menu_id, MainMenu.menu_name
ORDER BY MainMenu.menu_name;

Testна Sql Fiddle здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...