从数据库中获取交叉记录

时间:2015-09-17 09:56:08

标签: mysql

我有以下表结构:

structure_id | substructure_id | hash_id
1              1                 1
1              1                 2
1              2                 1
2              1                 3
2              1                 1
2              2                 2

我想为每个结构id获取一个交集,其中有多少个哈希与其他结构id相交,在不同的子结构中具有相同的哈希值。我的意思是以下输出:

structure_id | structure_intersected_id | count
1              1                          2
1              2                          2
2              2                          3
2              1                          2

这可以通过MySQL实现吗?到目前为止,我有以下查询:

select t1.structure_id, t2.structure_id, count(*)
from table t1 
inner join table  t2 on t1.hash_id = t2.hash_id
group by t1.structure_id, t2.structure_id;

但它不会删除重复的子结构哈希值,并且对于1-1,2-2,3-3等结构_id对不正确。

我该如何解决这个问题?

0 个答案:

没有答案