如何进行查询以显示单个递归请求的结果?

时间:2019-04-26 21:19:32

标签: sql mysqli

我有一个叫做person的表的结构, 此人有:id,名,姓,母亲ID,父亲ID 我想建立一个显示人员数据的简单查询 像这样:id,名字,姓氏,父亲的名字,母亲的名字

..2

1 个答案:

答案 0 :(得分:0)

您可以简单地通过将表联接到自身并使用表别名来查询此信息。除非您要浏览的层次结构具有不同的深度,否则不需要递归。对于此问题,深度是固定的,您只希望查看2条记录之间的父子关系。 LEFT JOIN将确保即使您的数据库中没有父母双方,该记录仍将为该人显示。

SELECT 
    P.ID
    , P.FIRST_NAME
    , P.LAST_NAME
    , F.FIRST_NAME FATHER_FIRST_NAME
    , M.FIRST_NAME MOTHER_FIRST_NAME
FROM 
    PERSON P
LEFT JOIN 
    PERSON F ON (P.FATHER_ID = F.ID)
LEFT JOIN
    PERSON M ON (P.MOTHER_ID = M.ID)