做个在线商城,商品类别的主类别和子类别,希望用自连接查出来,字段都在一张表里面,查出来放在网页上的两个<select>标记里
这样的select 语句怎么写啊?关键还有where 条件!!

解决方案 »

  1.   

    select m.name from emp m,emp w where m.主类别 = w.子类别 AND 其它条件
      

  2.   

    如:
       类别 名称  隶属类别      1    食品    0
        2     肉     1
        3     鸡肉   2
        4     鸡胸肉 3要就是一层的隶属关系的话,同时可以使用三种方式来实现:自连接还是比较好写的,也可以用主从表或是嵌套表来实现;但是在同一张表里面例如上面这样的,层次比较深,多于两层了,那使用主从表或是嵌套表就很不合适了,最好的还是用表的自连接,关键是select 语句的where条件,怎么写可以让它更加的通用?
    请高手赐教!
      

  3.   

    可以用 start with 与 connect by 可解决.
    论坛上这方面的资料也不少.
      

  4.   

    select t.类别, t.名称, t.隶属类别
      from table t
    start with t.类别 = 1
    connect by piror t.类别 = t.隶属类别;上面的语句可以隶属于类别为1的所有项.(从根结点到叶子)这个语句也可以从叶子到根结点.
      

  5.   

    好的,谢谢.
    我自己有个代码,也可以解决,也许没有你这个好用
    select t1.name,t2.name from table_name t1,table_name t2
    where t1.主类别=t2.子类别
    这样做是可以实现的,而且多层也好用.我会用你的实验下,谢谢!