-1

所以我想要完成的是让曾祖父母和曾孙辈对。我有一个名为Parents包含的表childparent因此我需要比较孩子和父母并检查它是否匹配。我可以在java中做到这一点没问题我只是不知道如何在mysql中做到这一点。任何帮助或提示都会很棒

child|parent
------------
will |john
john |jim
jim  |joe

所以我想要得到值 will, joe 因为 will 是 joe 的曾孙

4

1 回答 1

2

您需要做的是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 。这将导致乔成为威尔的曾祖父母。

于 2013-10-10T19:06:35.740 回答