三个时间连接查询在同一个表

问题描述:

我有一个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; 

先进感谢的,如果有人能帮助我这个!

你应该使用左连接(连接是用于内部连接别名)

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