У меня есть запрос mysql для отображения меню. Я хочу, чтобы меню было заказано родителем и оно было дочерним. это мой базовый запрос:
select * from (
select a.menu_id, a.menu_name, a.menu_parent parent, a.menu_parent parent_id, a.menu_order
from menu_backend a
where a.menu_parent = '0'
union all
select b.menu_id, concat('--',b.menu_name) menu_name, c.menu_name parent, b.menu_parent parent_id, b.menu_order
from menu_backend b
left join menu_backend c on c.menu_id = b.menu_parent
where b.menu_parent != '0'
) alias
и это результат:
Я хочу заказать дочернее меню точно родителям, но я не знаю, как это сделать. Спасибо
Я не изменял ваш базовый SQL много, как насчет этого?
select *
from (select a.menu_id,
a.menu_name,
a.menu_parent parent,
a.menu_parent parent_id,
a.menu_order,
a.menu_id sort_id
from menu_backend a
where a.menu_parent = '0'
union all
select b.menu_id,
concat('--', b.menu_name) menu_name,
c.menu_name parent,
b.menu_parent parent_id,
b.menu_order,
b.menu_parent sort_id
from menu_backend b
left join menu_backend c
on c.menu_id = b.menu_parent
where b.menu_parent != '0') alias
order by sort_id, parent_id, menu_order