2015-11-25 30 views
-2

及其相關的所有子ID我想要得到menu_id相關的所有menu_id即對於menu_id 3,它應該返回要獲得ID,並從同一個表在MySQL

3,4,6,11 

以下是我的表:

Table

+0

嗨,賈斯汀,歡迎來到SO。這看起來像一個'Hierarchical/Dynamic select'查詢。你不能用簡單的選擇來完成。 –

+0

嗨賈斯汀...你能詳細解釋一下你的問題嗎?你希望從你的表中得到menu_id的依據是什麼? – honey

+0

製作菜單列表。對於menu_id 3,它是主菜單並且與其子菜單menu_id 3有關。如果我選擇3它應該返回3,4,6,11 ..我的菜單應該包含像3定義用戶 - > 4用戶組 - > 6管理員詳細信息 - > 11郵件系統 – justin

回答

1

我覺得這個查詢爲你工作:

SELECT @id := (SELECT ms_menu_id FROM ms_menu WHERE ms_menu_parent = @id) 
    AS menu_id FROM (SELECT @id := 3) vars STRAIGHT_JOIN ms_menu WHERE 
@id !=0 union all (select ms_menu_id from ms_menu where ms_menu_id=3) 
order by menu_id ASC limit 1, 18446744073709551615 

結果應be:3,4,6,11

+0

感謝它的工作 – justin

+0

有趣的解決方案。儘管只有每個父母只有一個孩子纔有效。 – Kickstart

相關問題