使用的是MS SQl Server 2000
我现在想按着ID查询名称并得到ParentID的名称,0代表根类。请问要怎么编写语句?
例如:    鸡    鸟类
               猪    哺乳类MS SQL

解决方案 »

  1.   


    select a.Name 名称,b.Name 类别 from #a a join #a b on a.ParentID=b.ID where a.ParentID!=0
      

  2.   

    真正的数据库是 
        ID    ParentID    部门名称
        1        0              技术部
        2        0              市场部
        3        1               C#
        4        1               C/C++
        5        2               调研真正的是这样的,我想通过查询ID=5 得到 部门和父部门的名称即:调研 市场部
      

  3.   

    SELECT 名称,(select 名称 from tb b where a.parentid=b.id) as 父类名称 from tb a
    估计这个不能在sql2000上运行,那可能就要declare参数来实现了,自己调试下,应该可以的
      

  4.   

    select a.名称,b.名称 from [表名] a,[表名] b where a.parentId=b.id
    表自己跟自己关联
      

  5.   


    if object_id('Tempdb..#a') is not null drop table #a
    --建临时表
    create table #a(
    [ID] int identity(1,1) not null,
    [ParentID] int null,
    [Name] nvarchar(100) null
    )
    ---测试数据
    Insert into #a
    select 0,'鸟类' union all
    select 0,'哺乳类' union all
    select 1,'鸡' union all
    select 2,'牛' union all
    select 2,'羊' ---查询------
    select a.Name 名称,b.Name 类别 from #a a join #a b on a.ParentID=b.ID where a.ParentID!=0
    ------结果-------
    名称                                                                                                   类别
    ---------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------
    鸡                                                                                                    鸟类
    牛                                                                                                    哺乳类
    羊                                                                                                    哺乳类(3 行受影响)
      

  6.   


    create table ja
    (ID int, ParentID int, 部门名称 varchar(14))insert into ja
     select 1, 0, '技术部' union all
     select 2, 0, '市场部' union all
     select 3, 1, 'C#' union all
     select 4, 1, 'C/C++' union all
     select 5, 2, '调研'
     
     
    select a.ID,
           a.部门名称,
           (select b.部门名称
            from ja b
            where b.ID=a.ParentID) '父部门名称'
     from ja a
     where a.ID=5
     
    /*
    ID          部门名称           父部门名称
    ----------- -------------- --------------
    5           调研             市场部(1 row(s) affected)
    */
      

  7.   

    SELECT * FROM (SELECT * FROM tbl_ANIMAL WHERE PARENTID=0) AS PARENT_ANIMAL LEFT JOIN 
    (SELECT * FROM TBL_ANIMAL WHERE PARENTID!=0) AS DERIVATION_ANIMAL ON PARENT_ANIMAL.ID=DERIVATION_ANIMAL.PARENTID