menu、menu_data、languages の 3 つのテーブルがあります。最初のものはローカライズする必要のないメニュー情報を格納するために使用され、2 つ目は言語に基づいてローカライズされたデータ ( title など) を含み、最後のものは言語 ID を含みます。メニューは親が所有することができ、子メニューを選択するときにこの親を抽出したいと考えています。次のようなネストされた LEFT JOIN クエリを使用して実行できます。
SELECT la.title, la.permaname, menu.edittime, menu.id, la2.title AS parent_title, pmenu.id AS parent_id
FROM fm_menu AS menu
LEFT JOIN fm_menu_data AS la ON ( menu.id = la.targetid and la.languageid = 1 )
LEFT JOIN fm_menu AS pmenu ON pmenu.id = menu.parentmenu
LEFT JOIN fm_menu_data AS la2 ON ( pmenu.id = la2.targetid and la2.languageid = 1 )
しかし、私の質問は、このようなことを行うためのよりコンパクトで高速または正しい方法はありますか?