非常に単純な質問です。頭を包むことはできません。
例:
3つのテーブル。所有者<->OwnerAnimal<->動物
動物は複数の飼い主を持つことができ、飼い主は複数の動物を持つことができます。
ここで、特定の所有者を指定して、特定の所有者と共通の動物を飼っている他の所有者を見つけます。
私が思うのは、次のように、同じテーブルで複数回結合する必要があるということです。
select distinct
o2.Owner_Id,
o2.Name
from Owner o
left join OwnerAnimal oa
on o.Owner_Id = oa.Owner_Id
left join OwnerAnimal oa2
on oa.Animal_id = oa2.Animal_Id
left join Owner o2
on. oa2.Owner_Id = o2.Animal_Id
Where o.Owner_Id = 100 and o2.Owner_Id <> 100 --To exclude current owner from the list
しかし、これが正しいアプローチであるかどうかはわかりません。