如何获得两列的独特组合?

时间:2017-08-16 10:06:47

标签: mysql

我有如下表格

member  follower
A         B
B         C
C         D
E         A
B         A
B         E
D         E

在上面的数据A - B中,B - A具有相同的关系..我需要唯一的行A - B或B - A

输出应如下所示

member  follower
A         B
B         C
C         D
E         A
B         E
D         E

我已经解决但我只是想知道我的逻辑是否合适。

3 个答案:

答案 0 :(得分:1)

这是您需要的所有查询:

SELECT DISTINCT LEAST(member,follower) member_1
             , GREATEST(member,follower) member_2 
          FROM my_table;

剩下的就是噪音。

答案 1 :(得分:0)

一种可能的方法是:

 SELECT greatest(t.member,t.follower) as member1,
        least(t.member,t.follower) as member2
FROM YourTable t
GROUP BY 
       greatest(t.member,t.follower) ,
       least(t.member,t.follower) 

答案 2 :(得分:0)

尝试类似:

SELECT member, follower
FROM yourtable
WHERE (SELECT COUNT(*) FROM yourtable WHERE CONCAT(member, follower) = REVERSE(CONCAT(member, follower))) <= 1