我对基于递归子句的查询有疑问:
我有两个表:menu(菜单类别)和 menu_items(这些类别中的项目)。这些表是连接的:每个类别都可以有一些项目。现场查看菜单的顺序基于列:“menuitem_next”。连接列是 menuitem_parent。现在,我想查看菜单,所以我使用查询:
select * from menu m left join
(With RECURSIVE submenu AS
(Select * from menu_item where menuitem_name not in
(select menuitem_next from menu_item where menuitem_next is not null)
Union all
SELECT mi.* FROM menu_item AS mi JOIN submenu AS sm ON
(mi.menuitem_name=sm.menuitem_next)
)
SELECT * FROM submenu
)r
on m.menu_id=r.menuitem_parent order by m, r
结果查询中的顺序不正确。类别按 id 排序,菜单项使用“menuitem_next”列正确排序。谁能帮我修改这个查询或写新的?
我很抱歉我的英语不好。
问候