现有一表,表中记录为a,b,c,d,e,我希望实现如下等式a=b=c=d=e,当得到等式中任意记录就能得到abcde五行记录。开始时想用链表样的结构,也就是设表如下
id, prenode, afternode
a e b
b a c
c b d
d c e
e d a 但这样查询时还要写个函数,不方便,而且如等式无限长,效率可能会很低下。
还请个位给个更好的方案
id, prenode, afternode
a e b
b a c
c b d
d c e
e d a 但这样查询时还要写个函数,不方便,而且如等式无限长,效率可能会很低下。
还请个位给个更好的方案
解决方案 »
- oracle数据库导入
- 表空间和用户无法删除?
- ORACLE如何导入表数据
- 表空间数据文件被我删除---我在如何删除表空间(在线等急!!!!!!!!)
- 写了个分析windows下oracletrace文件的工具。类似sql server 的profiler。大家用用吧
- 为什么我这样处理异常有错误?
- 请问,怎样用sql语句获得某个user下、某个表的关键字字段信息?
- Oracle 如何设置 可以不产生 UNDO 日志
- 为什么在ORACLE的OMC中找不到"数据库"这个树节点
- Help me!请问Oracle中哪里有PL/SQL的详细帮助,象SQL Server中的T-SQL帮助一样的东西?
- NLS—LANG是UTF8时oracle监听服务启动失败
- jdbc获取一个Package中的自定义类型
如本例,等式中元素为5个,按目前的表结构,可用以下SQL查询出来
select * from tab_a
where id in (
select id
from tab_a
group by id
having count(*)=5
)
那还用得到abcde5行纪录吗?不都是一样的吗?还有用链表存储查询不用自己写函数。可以用sql查询。
如条件得到记录a,结果需得到与a有关的记录,
根据a的prenode为e,afternode为b,得到aeb,再根据e,b的prenode和afternode得到cd,全得到了为abcde
等式元素未知,要根据数据表记录查询才能得到,你上面的sql,加增加,减少记录后一点用也没有
a.id, b.prenode, b.afternode,c.prenode, c.afternode
from
表 a,
表 b,
表 c
where
a.id=输入值
and a.prenode=b.id(+)
and a.afternode=c.id(+)