Заказ MySQL по (где menu_name = child_name)

0

У меня есть запрос 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

и это результат:

http://xomf.com/vgjgc

Я хочу заказать дочернее меню точно родителям, но я не знаю, как это сделать. Спасибо

  • 0
    это ваш текущий результат или ожидаемый результат?
  • 0
    Привет @JaydipRakholiya спасибо за ответ, это текущий результат. Я хочу переместить дочернее меню с именем «--menu name» в родительское.
Теги:

1 ответ

0
Лучший ответ

Я не изменял ваш базовый 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
  • 0
    Вау! это работает нормально, как я хочу: D. спасибо @Jaydip

Ещё вопросы

Сообщество Overcoder
Наверх
Меню