再帰句に基づくクエリに問題があります。
menu (メニュー カテゴリ) と menu_items (これらのカテゴリのアイテム) の 2 つのテーブルがあります。これらのテーブルは結合されています。各カテゴリにはいくつかのアイテムを含めることができます。サイト上のメニューの表示順序は、列「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」列で適切に並べ替えられます。このクエリを変更したり、新しいものを書いたりするのを手伝ってくれる人はいますか?
英語が下手で申し訳ありません。
よろしく