我有一个叫做person的表的结构, 此人有:id,名,姓,母亲ID,父亲ID 我想建立一个显示人员数据的简单查询 像这样:id,名字,姓氏,父亲的名字,母亲的名字
..2
答案 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)