所以我想要完成的是让曾祖父母和曾孙辈对。我有一个名为Parents
包含的表child
,parent
因此我需要比较孩子和父母并检查它是否匹配。我可以在java中做到这一点没问题我只是不知道如何在mysql中做到这一点。任何帮助或提示都会很棒
child|parent
------------
will |john
john |jim
jim |joe
所以我想要得到值 will, joe 因为 will 是 joe 的曾孙
所以我想要完成的是让曾祖父母和曾孙辈对。我有一个名为Parents
包含的表child
,parent
因此我需要比较孩子和父母并检查它是否匹配。我可以在java中做到这一点没问题我只是不知道如何在mysql中做到这一点。任何帮助或提示都会很棒
child|parent
------------
will |john
john |jim
jim |joe
所以我想要得到值 will, joe 因为 will 是 joe 的曾孙
您需要做的是Parents
按以下两个顺序之一加入表:
曾祖父母 -> 祖父母 -> 父母
父母 -> 祖父母 -> 曾祖父母
例子:
SELECT
GreatGrandParents.parent AS great_grand_parent,
Parents.child AS great_grand_child
-- GreatGrandParents.parent is the great grand parent.
-- GreatGrandParents.child is the grand parent.
FROM Parents AS GreatGrandParents
-- GrandParents.parent is the grand parent.
-- GrandParents.child is the parent
INNER JOIN Parents AS GrandParents
ON GrandParents.parent = GreatGrandParents.child
-- Parents.parent is the parent.
-- Parents.child is the great grand kid of great grand parents.
INNER JOIN Parents
ON Parents.parent = GrandParents.child
有关示例,请参见http://sqlfiddle.com/#!2/ab228/1 。这将导致乔成为威尔的曾祖父母。