我有一个关系表,其中有两个人之间的关系。
id personA personB description
1 1 3 X
2 4 1 Y
3 3 4 Z
4 1 3 W
5 1 4 V
我对MySQL不太好,但是我的要求是与特定人建立关系。例如。谁是第一个人的朋友,没有任何重复的条目。在这里person1是3和4的朋友。我需要回答:
person
3
4
我尝试过但惨败
SELECT DISTINCT personA,personB FROM tester.relationship where personA=1 OR personB=1;
正在打印具有重复值(1,4&4,1)的人员A和人员B。
personA personB
1 3
4 1
1 4
答案 0 :(得分:1)
您可以使用联合来执行此操作。在这里,我们选择关系的一个方向,然后再选择另一个方向。 UNIONing结果为我们提供了不同的记录:
SELECT personB FROM tester.relationship where personA=1
UNION
SELECT personA FROM tester.relationship where personB=1;
或者,您可以在原始查询中使用CASE条件:
SELECT CASE WHEN personA = 1 THEN personB ELSE personA END
FROM tester.relationship
WHERE personA=1 OR personB=1;
答案 1 :(得分:1)
尝试一下:
SELECT DISTINCT CASE
WHEN personA = 1 THEN personB
ELSE personA
END
FROM relationship
WHERE 1 IN (personA, personB)
答案 2 :(得分:0)
如果您只寻找朋友
SELECT DISTINCT personB
FROM tester.relationship
where personA=1
您不需要OR personB = 1