-1
**Sub Menu**
id|title
1 | Sub A

**Root_Sub**
id|root_id|sub_id
1 |9      |1


**Root Menu**
id|title
9 | Root X

我需要找出子菜单的根菜单的 ID。

为此,我使用:

SELECT * FROM sub_menu LEFT JOIN root_sub ON sub_menu.id = root_sub.sub_id

这给了我 '9' 作为 ID。

但我还需要获取根菜单的标题,即获取标题“Root X”。我怎样才能做到这一点?

4

2 回答 2

1
SELECT  a.ID AS subID,
        a.title AS SubTitle,
        c.ID AS RootID,
        c.Title as RootTitle
FROM    sub_Menu a
        INNER JOIN root_sub b
            On a.ID = b.sub_ID
        INNER JOIn root_Menu c
            ON b.root_ID = c.ID

如果所有记录在其他表上至少有一个匹配项,INNER JOIN则首选 an 但如果一个为nullable,则更INNER JOIN改为LEFT JOIN

于 2013-01-21T15:29:52.427 回答
0
SELECT *
FROM sub_menu
LEFT JOIN root_sub ON sub_menu.id = root_sub.sub_id
LEFT JOIN root_menu ON root_sub.root_id = root_menu.id   
于 2013-01-21T15:29:43.663 回答