mysql将一个表从桥接表连接到自己



我有两个通过id相互引用的表。我想用第二个表将第一个表中的给定姓名与一个或多个人员的关系连接起来。看到示例

<表类> id 名称 地址 tbody><<tr>1乔纳斯Sturmwind街12 54312托马斯。新班克斯家14 54323Therese红毯柳树1 66234尼克Redcarpet柳树66235桑德拉麦克默多站

为了让你的结果

SELECT 
p.name AS NAME,
p1.name AS relatedTo,
p1.Address 
FROM
Person p,
Related r,
Person p1 
WHERE r.related_from_id = p.id 
AND r.related_to_id = p1.id 
AND p.name = 'Jonas' ;

然而,如果关系是朝任何方向发展,@The Impater的答案已经涵盖了你。

我假设您希望沿任意方向(左-右或右-左)遍历related表。

你可以这样做:

select p.name, o.name as related_to, o.address
from person p
join related r on p.id in (r.related_from_id, r.related_to_id)
join person o on r.related_from_id = p.id and o.id = related_to_id
or r.related_to_id = p.id and o.id = related_from_id
where p.name = 'Jonas'

最新更新