查询多对多关系

时间:2016-04-03 13:02:30

标签: mysql sql

我的数据库设计如下:

t_relationships

  • id(唯一)
  • relationship_uuid
  • actor_uuid

t_actor

  • id(唯一)
  • actor_uuid
  • name_or_whatever_doesnt_matter

关系表中有许多演员只有一个relationship_uuid

我遇到了高效查询的问题,它会让我与给定演员建立关系中的所有演员。

例如,如果actor table有条目[1,1,cat], [2,2,dog], [3,3,tree], [4,4,box]

relationship[1,1,1], [2,1,2], [3,1,3], [4,2,1] [5,2,4], [6,3,2], [7,3,4]

找出与猫有关系的人最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

您不需要id列。你可以放弃它们。您正在寻找联接

select ar.name
from t_actor a
join t_relationships r on r.actor_uuid = a.actor_uuid
join t_actor ar on ar.actor_uuid = r.relationship_uuid
where a.name = 'cat'