比较不同列中的值

时间:2013-10-10 18:52:13

标签: mysql

所以我想要完成的是与伟大的祖父母一起获得一对伟大的孙子孙女。我有一个名为Parents的表,其中包含childparent所以我需要比较孩子和父母,并检查它是否匹配。我可以在java中做到这一点没有问题我只是无能为力如何在mysql中做到这一点。任何帮助或提示都很棒

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

所以我想得到价值观,乔,因为将是乔的伟大的孙子

1 个答案:

答案 0 :(得分:2)

您需要做的是在以下两个订单中加入Parents表:

  • 伟大的父母 - >祖父母 - >父

  • parent - >祖父母 - >伟大的父母

示例:

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。这将导致乔成为威尔的伟大父母。