我有以下表结构:
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对不正确。
我该如何解决这个问题?