我有一个“关系”矩阵,例如:
+---------+------------+------------+------------+ ------------+------------+ | 姓名 | 阿尔伯特 | 鲍勃 | 查尔斯 | 戴尔 | 伊桑 | +---------+------------+------------+------------+ ------------+------------+ | 阿尔伯特 | | 0 | 1 | 1 | -1 | | 鲍勃 | | | 1 | -1 | 1 | | 查尔斯 | | | | 0 | 1 | | 戴尔 | | | | | 0 | | 伊桑 | | | | | | +---------+------------+------------+------------+ ------------+------------+ 0 表示他们彼此不认识 1表示彼此喜欢 -1 表示他们不喜欢对方
现在,我想输入两个名字并获得共同认识的人的数量,并通过将“喜欢”相加来“推测”他们的关系(最好在一个 SELECT 中)。
以查尔斯和戴尔为例:
查尔斯认识阿尔伯特和鲍勃,他们也认识戴尔。
查尔斯和戴尔之间的关系可能是友好的,因为查尔斯喜欢阿尔伯特(+1),阿尔伯特喜欢戴尔(+1),查尔斯喜欢鲍勃(+1),尽管鲍勃不喜欢戴尔(-1)。因此,输出将是 2 个共同认识的人和 +3 的“推测”。
我无法理解功能性子选择查询,再加上矩阵只有一半填充的事实似乎使它更复杂(有时名称是第一个索引,有时是第二个)。
有人可以帮我制定一个有用的查询吗?