互连链接的ID

时间:2018-01-25 20:14:28

标签: mysql

我有一个linked_persons MySQL表,其中包含2列:ID和LID。两列都引用PersonID(来自不同的表)。这个linked_persons背后的想法是展示两个人之间的关系。

这个linked_persons表是由其他人设置的,我无法对其进行修改。但是,以下是我对此表的了解:

  • 每个ID都与自身相关联。
  • 我们的想法是使用ID作为" primary"的标识符。 /"主要"在家庭中的人。并且,每个链接的子/兄弟都将被列为LID。但是,情况似乎并非如此。在某些情况下,ID指的是" primary"在其他情况下,LID是指" primary"人。

我在http://sqlfiddle.com/#!9/cb6bf4建立了一个SQL小提琴,它有一些关于如何制作条目的示例数据。

我正在尝试在这个linked_persons表格之上构建一个视图,该视图将与#34;互连"所有相关人员。即如果我搜索" family"中的任何成员,我需要能够获得此linked_persons的所有成员的ID。我需要能够在ID列或LID列中搜索成员的ID。

因此,基于SQL Fiddle,我试图生成以下结果:

ID | LID
--------
1  | 1
1  | 2
1  | 3
1  | 4
1  | 5
2  | 1
2  | 2
2  | 3
2  | 4
2  | 5
3  | 1
3  | 2
3  | 3
3  | 4
3  | 5
4  | 1
4  | 2
4  | 3
4  | 4
4  | 5
5  | 1
5  | 2
5  | 3
5  | 4
5  | 5
6  | 6

我的第一个想法是使用类似以下的查询,但由于ID 4和3彼此之间没有直接链接,因此无法正常工作。

SELECT ID, LID FROM linked_persons
UNION
SELECT LID AS ID, ID AS LID FROM linked_persons

0 个答案:

没有答案