T_manage
表及结构如下
id     upid      name
1       0        张董事长 
2       1        刘董事
3       2        周总经理
4       3        技术部何经理
5       3        销售部陈经理如何才能查询得到如下的数据?id     upname(上级领导)   title2       张董事长         刘董事
3       刘董事           周总经理
4       周总经理         技术部何经理
5       周总经理         销售部陈经理这样的情况相信很多人都遇到过,我以前是用很笨的办法,在显示数据的时候一个一个再查一遍,效率非常低请问有什么办法能一次性查询出来啊?

解决方案 »

  1.   

    select a.id,b.name,a.name from T_manage a,T_manageb b where a.upid=b.id
      

  2.   

    T_manage
    表及结构如下
    id     upid      name
    1       0        张董事长 
    2       1        刘董事
    3       2        周总经理
    4       3        技术部何经理
    5       3        销售部陈经理
    *********************************
    select a.name as upname,b.name from T_manage a inner join T_manage b on a.id=b.id where a.id=b.upid
      

  3.   

    正如上面大虾们给出的解决方案,这里要用到一个常见的技巧 -- 自连接。好像如果另外有一个up manager表就好了,连接一下马上就查出来了,
    其实可以试着把这张表看成两个表,一个是manager表,一个是up manager表,
    其中一个的主KEY是ID,另一个表的主KEY是upid剩下的事情就好办了,简单得把这两个表关联一下就好了。
      

  4.   

    再稍微学一下SQL,其实都是很简单的东西,楼主不要灰心。
      

  5.   

    第一楼的很容易理解,第二楼的高深一点,还有其他的解决办法吗?
     BenBenBoy(独孤小新),我是这么想的,一直没去研究,最近用得急,麻烦大家了。
      

  6.   

    一楼跟二楼虽然写的不一样,但如果放在SQL SERVER的查询中去执行的话,一楼的语句会自动变成二楼的连接的形式,不知道是不是连接效率要高些。