我有如下表格
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
我已经解决但我只是想知道我的逻辑是否合适。
答案 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