SQL Query查找Parent-Child Child-Parent关系?

Cha*_*ams 3 sql sql-server

O_O

如果我在表中有以下记录:

Parent     Child
1          2 <--
2          1 <--
3          2
3          4
Run Code Online (Sandbox Code Playgroud)

等等...

我想识别既是孩子的父母和父母的孩子的记录,例如上面箭头所标识的2条记录,我将如何做到这一点?

我试图在此表上运行一些递归SQL,但这些项目导致无限循环.我想识别这些项目,以便手动解决.

我的大脑因为弄乱递归查询已经足够了,我没有什么可以解决这个问题了.请帮忙 :)

a1e*_*x07 6

如果你理解得很好,你根本不需要递归:

 SELECT a.parent, a.child
 FROM table1 a
 INNER JOIN table1 b ON (b.child=a.parent and a.child = b.parent)
Run Code Online (Sandbox Code Playgroud)

如果您还需要显示不满足条件的行,则可能需要使用LEFT JOIN而不是INNER.