我试图想出一个映射问题的解决方案,在这个问题中我可以将两个看似不相关的组联系起来。因此,假设我有一组属性 A、一个实体组 1 和一个实体组 2。我可以轻松地在 1 和 A 之间建立多对多关系,并执行如下查询
select * from 1
inner join a_1 on a_1.1_id = 1.id
inner join a on a.id = a_1.a_id
where a.attr = '123'
我显然可以对与 2 相关的 A 做类似的事情。我实际上要查询的是 A 到 2 和 A 到 1,其中第 1 组和第 2 组中的元素在 A 中共享相同的属性。所以,如果属性 I 'm storage 是一个地址,我希望能够选择第 1 组和第 2 组中共享地址的所有人,以及这些地址是什么。
感谢帮助!
编辑:
表结构:
t1 -----< t1_A >------ A ------< t2_A >------ t2
t1[id, other], t1_A[id, t1id, Aid], A[id, address], t2_A[id, t2id, Aid], t2[id, other]
目标是为 t1 中与 t2 中的元素具有相同地址的每个元素返回一行(以及该地址是什么)。