2016-11-06 70 views
1

我有一個MySQL表爲三個時間連接查詢在同一個表

MENU_ID  MENU_NAME PARENT_ONE  PARENT_TWO 
    1    home   0    0 
    2    home_sub  1    0 
    3    third_home 1    2 

我想對父母一個和家長三三兩兩的ID名稱,每行若有。 我已經試過的東西,但其只給一個有父母一個和兩個值都像

MENU_ID MENU_NAME PARENT_ONE PARENT_TWO  MENU_NAME MENU_NAME 
3  third_home 1   2    home  home_sub 

,但我想

MENU_ID  MENU_NAME PARENT_ONE PARENT_TWO MENU_NAME  MENU_NAME 
1   home   0  0 
2   home_sub  1  0   home 
3   third_home  1  2   home   home_sub 



this the query that i tried 

SELECT a.*, b.MENU_NAME, c.MENU_NAME 
FROM menu_table a JOIN menu_table b ON a.PARENT_ONE = b.MENU_ID 
JOIN menu_table c ON a.PARENT_TWO = c.MENU_ID ORDER BY a.MENU_ID; 

先進感謝的,如果有人能幫助我這個!

回答

1

你應該使用左連接(連接是用於內部連接別名)

SELECT a.*, b.MENU_NAME, c.MENU_NAME 
FROM menu_table a 
LEFT JOIN menu_table b ON a.PARENT_ONE = b.MENU_ID 
LEFT JOIN menu_table c ON a.PARENT_TWO = c.MENU_ID 
ORDER BY a.MENU_ID; 
+0

感謝的@scaisEdge它的工作的! –

+1

@ M.Alim然後請標記爲正確 – e4c5