同一张表中, A列和B列相同,B列和A列相同时只显示一条,SQL怎么写?

新手上路,请多包涵

同一张表中, A列和B列相同,B列和A列相同时只显示一条,SQL怎么写?
id, name1, name2
1, a, b
2, b, a
3, c, d
4, d, c
5, e, f
...
期望结果
id, name1, name2
1, a, b
3, c, d
5, e, f
...
或者
id, name1, name2
1, a, b
4, d, c
5, e, f
或者
2, b, a,
3, c, d
5, e, f
...
或者
2, b, a,
4, d, c
5, e, f
...

阅读 1.8k
1 个回答
SELECT DISTINCT
    *
FROM
    t t1
LEFT JOIN (SELECT * FROM t) t2 ON t1.a = t2.b
AND t1.b = t2.a
WHERE
    t1.id < t2.id
OR (t2.id IS NULL)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进