SELECT 名称,(select 名称 from tb b where a.parentid=b.id) as 父类名称 from tb a 估计这个不能在sql2000上运行,那可能就要declare参数来实现了,自己调试下,应该可以的
select a.名称,b.名称 from [表名] a,[表名] b where a.parentId=b.id 表自己跟自己关联
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 行受影响)
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
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
select a.Name 名称,b.Name 类别 from #a a join #a b on a.ParentID=b.ID where a.ParentID!=0
ID ParentID 部门名称
1 0 技术部
2 0 市场部
3 1 C#
4 1 C/C++
5 2 调研真正的是这样的,我想通过查询ID=5 得到 部门和父部门的名称即:调研 市场部
估计这个不能在sql2000上运行,那可能就要declare参数来实现了,自己调试下,应该可以的
表自己跟自己关联
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 行受影响)
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)
*/
(SELECT * FROM TBL_ANIMAL WHERE PARENTID!=0) AS DERIVATION_ANIMAL ON PARENT_ANIMAL.ID=DERIVATION_ANIMAL.PARENTID