Sql 循环记录的字段的集合

Sql 循环记录的字段的集合,sql,postgresql,self-join,dremel,Sql,Postgresql,Self Join,Dremel,我在一个票务系统中工作,该系统使用该公司的SQL版本(与Postgre类似)将数据导出到报告数据库。我正在寻找一种方法来创建一个语句,该语句提取相关票证集合的行。我在搜索StackOverflow或谷歌搜索这个答案或类似的东西时遇到了麻烦 票可以在一个方向上相互关联。如果票据A链接到新创建的票据B,则相关项目表中将显示一行,如下所示: First ticket Second ticket ------------ ------------- Ticket A Ticke

我在一个票务系统中工作,该系统使用该公司的SQL版本(与Postgre类似)将数据导出到报告数据库。我正在寻找一种方法来创建一个语句,该语句提取相关票证集合的行。我在搜索StackOverflow或谷歌搜索这个答案或类似的东西时遇到了麻烦

票可以在一个方向上相互关联。如果票据A链接到新创建的票据B,则相关项目表中将显示一行,如下所示:

First ticket    Second ticket
------------    -------------
Ticket A        Ticket B
有时,票B与票C相关,票C与票D相关,依此类推

First ticket    Second ticket
------------    -------------
Ticket A        Ticket B
Ticket B        Ticket C
Ticket C        Ticket D
Ticket D        Ticket E
Ticket E        Ticket F
我可以看到票证A、B、C、D、E和F是相关的,但我不知道如何提取数据来证明这一点。我想查看所有相关票据的字符串,并确定此链的统计信息。我已经试过5次在这个表上自加入,但是如果关系变深了6、7或n怎么办

我想我想要的是一个语句,它可以查看这个相关链中的任何票据,并生成一行

Ticket A, Ticket B, Ticket C, Ticket D, Ticket E, Ticket F

谢谢

循环引用的情况如何?假设您构建了一个SQL或其他东西,您希望如何处理这样的情况,例如,两个记录共存
(“票证A”、“票证B”)
(“票证B”、“票证A”)
?您可以使用递归CTE跟踪链接到任何深度。您需要的是“传递闭包”的函数表所表示的关系/关联的@PhilipZou系统会自动阻止循环引用,所以虽然我觉得正常情况下我需要对此进行解释,但在这种情况下,我不会。当然,我也认为应该为以防万一的情况设置护栏。。