Chinaunix

标题: 求关系数据库算法问题! [打印本页]

作者: simeiren    时间: 2009-03-20 00:29
标题: 求关系数据库算法问题!
有一个表,有两个字段,都是 int 类型!
如:
id1    id2
1      2
2      1
2      3
3      2
4      1
5      1
6      1
7      1
2      8
2      9
2      10
2      11
3      4
3      5
3      6
4      3
5      3
我现在要的答案就是:
id1 即对应 id2,反过来 id2 又必须对应 id1 的记录数!

id1    id2
1      2
2      1
这样算是 1 对关系,记做 1;
现在想找出所有这样关系对,求解 ?
作者: 枫影谁用了    时间: 2009-03-20 08:46
id1 即对应 id2
这里没有看明白,是说保留现在对应的值?
作者: a_vagrant    时间: 2009-03-20 12:09
SELECT id1,id2 FROM id T1 WHERE id1 = (SELECT T2.id2 FROM id T2 WHERE T1.id1=T2.id2 and T1.id2=T2.id1);

不知道这样满足条件不,
查询出来的结果是这样的:
id1    id2
1      2
2      1
2      3
3      2
3      4
3      5
4      3
5      3
把查询出来的行数除以2就可以了。
作者: simeiren    时间: 2009-03-20 12:20
SELECT id1,id2 FROM id T1 WHERE id1 = (SELECT T2.id2 FROM id T2 WHERE T1.id1=T2.id2 and T1.id2=T2.id1);

不知道这样满足条件不,
查询出来的结果是这样的:
id1    id2
1      2
2      1
2      3
3      2
3      4
3      5
4      3
5      3


这个结果正确!
我还没来得及和枫影详细说呢,呵呵




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2