PostgreSQL:以用户友好的方式显示表内的交叉引用

PostgreSQL:以用户友好的方式显示表内的交叉引用,postgresql,cross-reference,Postgresql,Cross Reference,我有一个包含帐户验证行的表。一个帐户可以有一个或多个与其相关的行,这取决于它进行验证的尝试次数 在每个条目中都有一个引用,它告诉我该帐户的特定唯一参数是否出现在其他帐户验证中。问题是,参考资料也可以指向同一个帐户,这对我没有任何用处。我想找到共享唯一参数的帐户,即引用指向不同帐户的位置 我在表中没有唯一的参数,这会使它更容易 下面是一个示例(按创建描述时间排序): 我不感兴趣的是,参考文献指出在2a和2b验证中都会出现一个唯一的参数,因为它们属于同一个帐户 我感兴趣的是,正如参考单元格(即1a、

我有一个包含帐户验证行的表。一个帐户可以有一个或多个与其相关的行,这取决于它进行验证的尝试次数

在每个条目中都有一个引用,它告诉我该帐户的特定唯一参数是否出现在其他帐户验证中。问题是,参考资料也可以指向同一个帐户,这对我没有任何用处。我想找到共享唯一参数的帐户,即引用指向不同帐户的位置

我在表中没有唯一的参数,这会使它更容易

下面是一个示例(按创建描述时间排序):

我不感兴趣的是,参考文献指出在2a和2b验证中都会出现一个唯一的参数,因为它们属于同一个帐户

我感兴趣的是,正如参考单元格(即1a、3a)所指出的,帐户_id 1和3中都出现了一个唯一的参数

这就是我想要的结果:

|帐户| id |已连接到|
|-------------|--------------|
|      1      |      3       |
|      3      |      1       |
甚至第一排就足够了


希望我在解释问题和结果方面做得很好。

加入
帐户id
验证id
的不等式,然后使用
&
测试数组重叠:

select a.account_id, b.account_id as connected_to
  from verification a
       join verification b
         on a.account_id != b.account_id
        and a.verification_id != b.verification_id
        and string_to_array(a.reference, ',') && 
              string_to_array(b.reference, ',');

您不应该像那样存储逗号分隔的值。您有机会修复损坏的数据模型吗?
reference
列的数据类型是什么?如果
references
包含10个不同的值怎么办?那么您想要的输出是什么?>引用列的数据类型是什么?JSON数组>如果引用包含10个不同的值怎么办?那么,您想要的输出究竟是什么?好问题。我想让他们集中在一个主要客户id上。我得说,你这个问题有点难倒我了。
select a.account_id, b.account_id as connected_to
  from verification a
       join verification b
         on a.account_id != b.account_id
        and a.verification_id != b.verification_id
        and string_to_array(a.reference, ',') && 
              string_to_array(b.reference, ',');