现有一表,表中记录为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 但这样查询时还要写个函数,不方便,而且如等式无限长,效率可能会很低下。
还请个位给个更好的方案

解决方案 »

  1.   

    等式已知,则等式中的元素已知,是否?
    如本例,等式中元素为5个,按目前的表结构,可用以下SQL查询出来
    select * from tab_a
    where id in (
      select id
      from tab_a
      group by id
      having count(*)=5
    )
      

  2.   

    不太懂楼主的意思。既然a=b=c=d=e~~~~
    那还用得到abcde5行纪录吗?不都是一样的吗?还有用链表存储查询不用自己写函数。可以用sql查询。
      

  3.   

    回楼上等式是未知的,
    如条件得到记录a,结果需得到与a有关的记录,
    根据a的prenode为e,afternode为b,得到aeb,再根据e,b的prenode和afternode得到cd,全得到了为abcde
      

  4.   

    wiler(@_@) 等式中的元素已知?======================================================
    等式元素未知,要根据数据表记录查询才能得到,你上面的sql,加增加,减少记录后一点用也没有
      

  5.   

    select
    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(+)
      

  6.   

    其实我要的只是个表设计方案,楼上各位都只看了我的表设定,写语句而已.(而且没一个实用的)说出来很简单,把原表id, prenode, afternode改为id, type就行发,其中id为主键,type为类别,一个类别的id,type一样就行了.这样任意的向这个type加成员和减成员就都变得简单了.是我白痴都得太复杂而已