有个sql语句不会写

来源:百度知道 编辑:UC知道 时间:2024/05/29 05:01:49
有个表有两列 存有无线网络的连接状况 比如有一行是 1 2
就代表从1到2 有一个单向连接的链路

可是双向链路在这个表中就占据了两行
比如 第一行 1 2
第二行 2 1

如何写一个sql语句 将这种双向链路提取出来 单向链路都不要?

谢谢各位

如果叙述 不详细 请qq联系 在电脑网络->其他编程语言 里面也有个同样的帖子 一起回答吧
14304513
我这个表有30000多行

像这样做性能很差

一两行是可以
有没有啥其他的好的办法?


create table table1
(
a int,
b int
)

insert into table1 values (1,2)
insert into table1 values (2,1)
insert into table1 values (3,4)
insert into table1 values (4,5)

select a1.* from table1 as a1,table1 as a2
where a1.a=a2.b and a1.b=a2.a

结果
a b
----------------------
1 2
2 1

假设表名为t, 列为c1, c2, 标识列为id
SELECT t1.*
FROM t as t1 , t as t2
where (t1.c1 = t2.c2 AND t1.c2 = t2.c1)

Select * From t t1 Where Exists(
Select 1 From t t2 where t2.c1=t1.c2 AND t2.c2=t1.c1
)

呵呵,和楼上很像